2014-06-20 135 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。

如果有人可以提供一個解決方案,我會留下這個問題更多的時間。