2014-06-20 69 views
1

以下是我的: 我在jsp页面中使用JTable(http://www.jtable.org/),以及spring mvc模型。我也有设置本地化,所有这些工作正常。下面我有我的代码的一部分,增加了我认为相关的,因为我不知道...请尽快为我询问我一些输入 (将在周末回答,因为在周末我doupt我可以有PC访问)。jsp标签弹簧mvc模型值

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/WEB-INF/views/"/> 
    <property name="suffix" value=".jsp"/> 
</bean> 

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
    <property name="basename" value="classpath:i18n/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_US"/> 
</bean> 

这是我需要做的: 我需要建立一个JTable,其中场,行动等来自服务器,以便这些都是动态的(检查Dynamic creation of multilevel Javascript object for jQuery-jTable从其他用户所做的)。在我的情况MyObj中会从服务器作为一个字符串,即

@RequestMapping(value = "/locales", method = RequestMethod.GET) 


public ModelAndView testList(ModelAndView mv, final HttpServletRequest request) { 
    mv.setViewName("list"); 
    mv.addObject("model", 
    "{\n" + 
     "     title: '<spring:message code=\"table.users.users\"/>',\n" + 
     .... 
     "     fields: {\n" + 
     "      ID: {\n" + 
     "       key: true,\n" + 
     "       list: false,\n" + 
     "       create: false,\n" + 
     "       edit: false\n" + 
     "      },\n" + 
     "      Name: {\n" + 
     "       title: '<spring:message code=\"table.name\"/>',\n" + 
     "       width: '15%',\n" + 
     ... 

以上你看到的将动态创建的控制器的型号通过这段文字(使用极速引擎,动态数据,...)

是的List.jsp如下:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> 
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %> 
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%> 
<tags:template> 
    <jsp:body> 
     <script> 
      $(document).ready(function() { 
       $('#ListContainer').jtable(${model}); 
       $('#ListContainer').jtable('load'); 
      }); 
     </script> 
      <div id="ListContainer" style="width:99%;"></div> 
    </jsp:body> 
</tags:template> 

我的问题是,虽然我在现场设置本地化等拥有所有的标签,即当这些控制器的返回模型的内容'内不会呈现。有没有办法说,控制器或InternalResourceViewResolver解决模型的价值,就好像它是一个JSP?

我希望我明确了我的问题,并提供了所有需要回复我的问题,如果不是,请随时提问。我害怕,因为我仍然倾斜,我没有在我的脑海里清楚所有这些如何绑定在一起我唯一知道的是我需要一个动态/通用jtable列表完全本地化列表。

回答

0

我设法解决了我的问题。仍然不确定这是否是最好的解决方案,但我想让别人知道,以防其他人需要相同的解决方案。

所以在这里是怎么一回事呢,我有以下流程: 控制器 - > {Velocity引擎} - >局部JTable的配置 - > JSP

控制器获取模型并将其送至一个速度模板。在那里我也喂(除了我的速度模板模型):messageSource和localeResolver。 ,无论我的速度有本地化的标签我写他们如下: $ {messageSource.getMessage($ {} field.title,$ noArgs,$ {} field.title,$区域)}

即使当我需要传递一些速度模型值,这些值应该使用宏#evaluate($ table.name)从速度进行评估。

速度评估完成后,我有jtable的配置准备好并将其馈送给jsp。

如果有人可以提供一个解决方案,我会留下这个问题更多的时间。