表 User1       User2
     ID            ID
     Name         Name
     Age          Age  Map  map = new Map();   List  userList  =  new ArrayList()User1 user1 = new User1()
User2 user2 = new User2()   userList.add(user1);  userList .add(user2);map .put(userList);
 <#list userlist as user>
                           </#list>请问在FreeMarker 模板里应该怎么写才能分别把 User1 和User2 的ID, name ,age ,生成出来  谢谢!!!!!!

解决方案 »

  1.   

    <table>
    <#list userlist as user> 
    <tr>
        <td>${user.id}</td><td>${user.name}</td><td>${user.age}</td>
    </tr>                          
    </#list>
      

  2.   

    分别把 User1 和User2 的ID, name ,age ,生成出来会报:Expression form is undefined on line 210, column 29 in FreeMarker.ftl.
    The problematic instruction:
    ----------
    ==> list form.tripslist as tripslists [on line 210, column 22 in FreeMarker.ftl]
    ----------Java backtrace for programmers:
    ----------
    freeer.core.InvalidReferenceException: Expression form is undefined on line 210, column 29 in FreeMarker.ftl.
    at freeer.core.TemplateObject.assertNonNull(TemplateObject.java:124)
    at freeer.core.TemplateObject.invalidTypeException(TemplateObject.java:134)
    at freeer.core.Dot._getAsTemplateModel(Dot.java:78)
    at freeer.core.Expression.getAsTemplateModel(Expression.java:89)
    at freeer.core.IteratorBlock.accept(IteratorBlock.java:87)
    at freeer.core.Environment.visit(Environment.java:196)
    at freeer.core.MixedContent.accept(MixedContent.java:92)
    at freeer.core.Environment.visit(Environment.java:196)
    at freeer.core.Environment.process(Environment.java:176)
    at freeer.template.Template.process(Template.java:232)
    at com.clogi.lopo.scs.presentation.self.SelfHtmlFreeMarker.init(SelfHtmlFreeMarker.java:58)
    at com.clogi.lopo.scs.presentation.self.CreateHtmlAction.listHtml(CreateHtmlAction.java:178)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at net.sf.jlue.aop.support.ActionInvocation.proceed(ActionInvocation.java:69)
    at net.sf.jlue.aop.intercept.ActionInterceptor.invoke(ActionInterceptor.java:78)
    at net.sf.jlue.struts.BaseAction.invoke(BaseAction.java:178)
    at net.sf.jlue.struts.BaseAction.execute(BaseAction.java:121)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at net.sf.jlue.struts.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:65)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)
      

  3.   

    不能这么写:<table>
    <#list userlist as user>  
    <tr>
      <td>${user.id}</td><td>${user.name}</td><td>${user.age}</td>
    </tr>   
    </#list>
    因为user虽然是list,但其中不能直接获取其id和age。其实可以用两种方式解决:其一新构建一个list,把id和age、name这些值放进去,或对user1和user2进行整改即可。