我将我的servlet配置为支持国际化,正如我在下面所示:
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="classpath:messages" />
<property name="defaultEncoding" value="UTF-8"/>
</bean>
<bean id="localeChangeInterceptor"
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="lang" />
</bean>
<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="defaultLocale" value="en"/>
</bean>
<bean id="handlerMapping"
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<ref bean="localeChangeInterceptor" />
</property>
</bean>
在JSP页面上,我以这种方式添加了语言选择:
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<h3><spring:message code="label.title"/></h3>
<span style="float: right">
<a href="?lang=en">en</a>
|
<a href="?lang=de">de</a>
</span>
如何替换select(组合)的上述代码组件?
(伪代码)
<td><form:select path="language" onchange="">
<form:option value="0" label="..." />
<form:options items="${languageList}" />
</form:select></td>
请帮忙
EDIT 我不希望任何东西设置为默认值。他想选择这个选项,他选择了你。你会看到一个例子:
第一步 localhost:8080 / newUser - &GT; 在控制器
@ RequestMapping (value = "/ newuser" method = RequestMethod.GET)
public ModelAndView showNewUser (ModelMap model) {
ModelAndView mav = new ModelAndView ();
mav.mav.setViewName ("newuser");
User user = new User ();
mav.getModel (). put ("user", user);
return mav;
我的JSP表单 ...
<form id="langForm" action="newUse" method="get">
<table>
<tr>
<td> <a href="#"> <spring:message code="label.helpLink" /> </ a> </ td>
<td> <select name="lang" id="lang">
<option value="de"> <spring:message code="languageName.de"> </ spring: message> </ option>
<option value="en"> <spring:message code="languageName.en"> </ spring: message> </ option>
</ select> </ td>
</ tr>
</ table>
</ form>
...
<script type="text/javascript">
$ ("# lang"). change (function () {
document.forms ["langForm"] submit ();
});
</ script>
第二步 - 最终用户从组合选项“languageName.en中选择。然后重新加载页面 (localhost:8080 / newUser?lang = en)将语言更改为EN,但仍然选择组合作为第一项。我想选择的是你在第2步中选择的那个。所以,我会保存状态。
ADDED
<form>
<select name="lang" id="lang" onchange="this.form.submit();">
<option value="pl"><spring:message code="languageName.pl"></spring:message></option>
<option value="en"><spring:message code="languageName.en"></spring:message></option>
</select>
</form>
如何在没有模特的情况下保留选项?
答案 0 :(得分:0)
在jsp中
<form:select path="language" onchange="">
<c:forEach var="lan" item="${languageList}">
<form:option value="0" label="${lan}" />
<form:options items="${lan}" />
<c:forEach />
</form:select>
添加将侦听其状态更改的javascript。如果发生变化,则在会话中反映这种参数语言
<强>更新强>
假设你有这样的组合框
<select>
<option>Small</option>
<option>Medium</option>
<option>Large</option>
<option>X-Large</option>
</select>
并且您希望默认选择X-large,像这样制作HTML
<select>
<option>Small</option>
<option>Medium</option>
<option>Large</option>
<option selected="true">X-Large</option>
</select>
制作
<select name="lang" id="lang">
<option value="de" <c:if ${sessionBean.lan}=='de'>seelcted='true'</c:if>> <spring:message code="languageName.de"> </ spring: message> </ option>
<option value="en" <c:if ${sessionBean.lan}=='en'>seelcted='true'</c:if>> <spring:message code="languageName.en"> </ spring: message> </ option>
</ select>