我已经阅读了资源文件,并使用html:optionsCollection创建了dropdownlist。但无法解析屏幕截图中下拉选择中显示的UTF8字符串。这应该被解析为Français(加拿大)
下面是示例代码
JSP代码:
<html:select property="locale" onchange="refreshPage(this.value)">
<html:optionsCollection property="dropDownList"/>
</html:select>
动作形式bean类
public void setDropDownList(Collection dropDownList){
this.dropDownList = dropDownList;
}
public Collection getDropDownList(){
if(dropDownList == null){
dropDownList = new Vector(10);
Locale availableLanguages[] = DAOFactory.getConfigurationDAO().getAvailableLanguages();
Properties properties = loadProperties(Locale.ENGLISH);
for(int i=0 ; i<availableLanguages.length ; i++){
String localeNameKey = "com.web.ui.localeName." + availableLanguages[i].toString();
String value = availableLanguages[i].toString();
String key = properties.getProperty(localeNameKey);
dropDownList.add(new LabelValueBean(key,value));
}
log.debug("size of dropdown :: "+dropDownList.size());
}
return dropDownList;
}
private Properties loadProperties(Locale locale) {
try {
InputStream inputStream = null;
inputStream = LoginForm.class
.getResourceAsStream("/resources/application_"
+ locale.getLanguage() + "_" + locale.getCountry()
+ ".properties");
if (inputStream == null) {
inputStream = LoginForm.class
.getResourceAsStream("/resources/application.properties");
}
if (inputStream == null) {
throw new IllegalStateException(
"Unable to load the application properties.");
}
//BufferedReader buffRead = new BufferedReader(new InputStreamReader(inputStream));
Properties p = new Properties();
p.load(inputStream);
return p;
} catch (IOException e) {
throw new IllegalStateException(
"Was not able to load the application properties.");
}
}
感谢任何帮助。
带有脚本的JSP代码:
<html:select property="locale" onchange="refreshAndSetValues(this.value)">
<% Locale availableLanguages[] = DAOFactory.getConfigurationDAO().getAvailableLanguages();
for (int i=0; i<availableLanguages.length; i++) {
String localeNameKey = "com.web.gui.localeName." + availableLanguages[i].toString(); %>
<html:option value="<%= availableLanguages[i].toString() %>"
key="<%= localeNameKey %>"/>
<% }%>
</html:select>
Scriptlet代码读取属性文件并成功解析这些字符串。
属性文件
com.web.ui.locale=Language
com.web.ui.localeName.en_US=English
com.web.ui.localeName.fr_CA=Français (Canada)
com.web.ui.localeName.fr_CA.decoded,Français (Canada)
com.web.ui.localeName.fr_FR=Français (France),
com.web.ui.localeName.nl_NL=Nederlands
com.web.ui.localeName.es_419=Español (América Latina)
com.web.ui.localeName.es_ES=Español (Castellano)
com.web.ui.localeName.de_DE=Deutsch
你的问题就在你的房产档案里:
com.web.ui.localeName.fr_CA=Français (Canada)
相比之下:
com.web.ui.localeName.fr_FR=Français (France),
由于您在文件中有一个转义,而JSP转义了转义,您应该删除转义并从法国行复制单词。
问题内容: 我想从我的字符串中删除以下所有字符 “> [],-” 目前我正在这样做。但必须有一个更有效的方法 问题答案: 使用描述要替换的所有字符的正则表达式,以及替换与该正则表达式匹配的所有内容的方法: (编辑:实际上,我认为不应该转义。而且我忘记了将反斜杠加倍,因为它们会被解释两次:一次是由Java编译器,一次是由正则表达式引擎。)
问题内容: 我有一个包含1-n纬度/经度记录的JSON字符串。看起来像这样: 什么是解析此值以获取经纬度值循环的好方法?转义的双引号是否会影响解析? 谢谢亚历克斯 问题答案: 打印…
我需要使用jsonpath解析例子1中的json,类似于下面的例子2。但找不到路径,因为json的类型是字符串。请建议我一些可能的方法来解析json字符串,以动态地修改colourCode的值。 例1: 例2: Jsonpath: 这将返回"iPhone"
我有一个输入表单,允许某人键入unicode字符。所以它可能是类似于“嘿,uF32A怎么了?如果我得到这个字符串,它将有一个子字符串“\uF32A”,我如何将其转换为字符“\uF32A”?
问题内容: 我在从字符串中删除非utf8字符时出现问题,这些字符无法正确显示。像这样的字符0x97 0x61 0x6C 0x6F(十六进制表示) 删除它们的最佳方法是什么?正则表达式还是其他? 问题答案: 使用正则表达式方法: 它搜索UTF-8序列,并将其捕获到组1中。它还与无法标识为UTF-8序列的一部分的单个字节匹配,但不捕获这些字节。替换是捕获到组1中的任何内容。这将有效删除所有无效字节。
问题内容: 我想要一个Cookie字符串(因为它可能会在Set-Cookie标头中返回),并且能够轻松修改其中的一部分,特别是到期日期。 我看到有几种不同的Cookie类,例如BasicClientCookie,但是我看不到任何简单的方法来将字符串解析为这些对象之一。 我在api级别9中看到他们添加了具有解析方法的HttpCookie,但是我需要在以前的版本中工作。 有任何想法吗? 谢谢 问题答案