我有一个网站,使用引导程序和引导程序主题。当网站用户触发某些操作时,我的网站还会向他们发送通知电子邮件。
我希望发送的通知电子邮件的正文是格式良好的 HTML 内容,具有与主网站相同的外观和感觉。
我一直被教导要编写 DRY 代码,并使事情尽可能可维护,所以我想包含我的网站用作电子邮件中嵌入文件的相同引导 CSS,并让 HTML 正文引用该 CSS,所以如果我决定更改网站的主题,它会自动重新设置我的通知电子邮件的样式。
我用来System.Net.Mail.SmtpClient发送电子邮件,并使用 AlternateViews 添加内容。我不想在我的网站的 CSS 中包含实时引用,以防电子邮件被离线查看,所以我想嵌入 CSS。
我一直不知道如何将 CSS 文件读入字符串,并将其附加到电子邮件中。在我的 BundleConfig 中,我有这个:
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap-sandstone.css",
"~/Content/site.css"));
Run Code Online (Sandbox Code Playgroud)
所以我尝试:
var css = File.ReadAllText(HttpContext.Current.Server.MapPath("~/Content/css"));
Run Code Online (Sandbox Code Playgroud)
但正如我想象的那样,它抛出了 FileNotFound 异常。
我可以使用什么来让我传入~/Content/css和传出弹出CSS?
当Locale.getDefault()返回en时,为什么spring"ReloadableResourceBundleMessageSource"无法找到与代码关联的正确消息,但是当它返回en_US时能够找到正确的消息
默认区域设置:en_US
key: CODE_1, Locale: Locale.US = Hit
key: CODE_1, Locale: Locale.CANADA = Hit
key: CODE_1, Locale: fr_CA = Hit
key: CODE_1, Locale: null (use default) = Hit
Run Code Online (Sandbox Code Playgroud)
默认区域设置:en
key: CODE_1, Locale: Locale.US = Hit
key: CODE_1, Locale: Locale.CANADA = CODE_1
key: CODE_1, Locale: fr_CA = CODE_1
key: CODE_1, Locale: null (use default) = CODE_1
Run Code Online (Sandbox Code Playgroud)
我只有一个在类路径中有CODE_1的包,它是message_en_US.properties
我尝试从Intellij运行测试.我测试的方法使用src/main/resources中的一些属性文件,但是当我将它作为JUnit测试运行时,它们似乎被忽略了.当我从eclipse和ant运行它而不是从Intellij运行时它可以工作.如何在Intellij中为测试显示我的src/main/resources?不知道它是否重要,但测试和主文件夹在我的项目视图中被视为分离的模块.
我在Eclipse(Indigo Service Release 1)中遇到了编码问题.这是发生的事情:
我有一个德语的属性文件(语言包),当我打开它时,它没有正确显示Eclipse.例如:gelöscht显示为gel?scht.我曾试图改变文件关联Text Editor,Properties File Editor,JBoss Tools Properties Editor但它是这个样子在所有情况下.
有趣的是,当我打开文件时,Notepad++它正确显示.在Eclipse,文本文件编码设置为UTF-8,文件的编码(根据Notepad++)是ANSI.
还有其他的设置我不知道吗?如何修复此问题以查看正确的编码Eclipse?
我试图在Spring中使用ResourceBundleMessageSource.这是我的项目结构:

这是xml配置:
<bean name="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>messages</value>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
当我尝试加载应用程序上下文时,我收到以下异常:
Jun 7, 2012 2:44:00 PM org.springframework.context.support.ResourceBundleMessageSource getResourceBundle
WARNING: ResourceBundle [messages] not found for MessageSource: Can't find bundle for base name messages, locale en_US
Exception in thread "main" org.springframework.context.NoSuchMessageException: No message found under code 'user.welcome' for locale 'en_US'.
at org.springframework.context.support.AbstractMessageSource.getMessage(AbstractMessageSource.java:135)
at org.springframework.context.support.AbstractApplicationContext.getMessage(AbstractApplicationContext.java:1192)
at com.pramati.core.MessageResolver.getMessage(MessageResolver.java:19)
Run Code Online (Sandbox Code Playgroud)
如果我将资源包文件直接放在资源文件夹下,我没有收到此错误.它工作正常.有人可以通过将资源包放在src/main/resources的子目录中让我知道如何才能完成这项工作?
在ResourceBundle已加载之后是否可以执行此操作?我在Tomcat下工作,并尝试了不同的代码示例,但是没有一个对我有用。有什么建议吗?
在我的login.jsp中,我有以下内容:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:setLocale value="${sessionScope.locale}" />
<fmt:setBundle basename="com.ubbcluj.project.res.myProp" />
<!DOCTYPE html>
Run Code Online (Sandbox Code Playgroud)
并尝试以下列方式显示用户名:
myProp.properties文件如下所示,位于"/ Project/src/main/java/com/ubbcluj/project/res"中:
username = Username
pass = Password
register = Register
login = Login
Run Code Online (Sandbox Code Playgroud)
当页面加载时,它以下列方式出现:???用户名???
我试过添加一个变量,如其他教程所示:
<fmt:message key="username" var="${lang}" />
Run Code Online (Sandbox Code Playgroud)
但仍然没有奏效.
我可以分享我的整个项目,我知道它并不完美,但它只是一个研究项目,欢迎任何建议. https://www.dropbox.com/sh/biavimrexisfskp/o9q57IoiUl
我正在寻找可能性,如果我可以根据从托管bean收到的值获得resourcbundle值.它可能在datatable,datagrid以及呈现值的其他组件中很有用.
我试过这段代码:
<h:outputText value="#{resourceBundle['myBean.myMsg']}" />
Run Code Online (Sandbox Code Playgroud)
但它没有用.我的outputText无法从resourcebundle获取值.结果如下:
???myBean.myMsg
Run Code Online (Sandbox Code Playgroud) 我正在创建一个模块化的JSF 2.0应用程序,每个模块都有自己的faces-config和facelet页面.这些模块打包到JAR中并在主JSF2应用程序中使用.一切正常,但每个faces-config文件中定义的资源包在运行时都没有解析.未解析表示相应的文本未显示在页面中.我将消息称为<h:outputText value="#{msg['message1']}" />
我该如何运作?
我在属性文件中有消息,并使用spring和spring消息标记读取这些属性文件,
例如,我有:
key.red=Red<br>
key.blue= blue
Run Code Online (Sandbox Code Playgroud)
蓝色消息文本显示为"蓝色"但不是"蓝色".弹出的前导空格是:spring标签.
我怎么能保留领先的空间?我感谢任何帮助
谢谢,
斯里兰卡