【问题标题】:FreeMarker Form for nested Object嵌套对象的 FreeMarker 表单
【发布时间】:2013-05-28 22:14:14
【问题描述】:

我正在尝试编写 freemarker 模板,但无法使用我的对象类进行解析。

我的 POJO 是

public class Metrix {

    @Id
    String _id;
    String loginId;
    Date date;
    List<MatrixDetail> headers;

    //All getters and setters
}

public class MatrixDetail {

    String header;
    int time;
    String detail;

//All getters and setters

}

//保存表单后的控制器

 @RequestMapping(value = "/matrix/save", method = RequestMethod.POST)  
    public View saveMatrix(@ModelAttribute Metrix matrix, ModelMap model) {  
        System.out.println("Reachecd in matrix save" );
        return new RedirectView("/TrackerApplication/header.html");  
    }  

FTL 模板表单部分

<form name="matrix" action="matrix/save.html" method="post">
    <table class="datatable" align:"center">

    <tr>
    <th>Login Id:</th>  <th> <input type="text" name="loginId" value= ${matrixList.loginId} required /> </th> 
    </tr>

    <tr> <td></td><td></td><td></td></tr>
    <tr>
    <th>Header</th>  <th>Time</th> <th>Details</th>
    </tr>


**//  I am not getting how this nested object which is of type List<MatrixDetail> 
//  will get parse in my form.**
  <#list matrixList.headers as header>
    <spring:bind path = "MatrixDetail">
    <tr>
           <td> <input name = "header" value =  ${header.header} /> </td>
           <td> <input name = "time" value = ${header.time} /> </td>
           <td> <input name = "detail" value =  ${header.detail} /></td></tr> 
   </#list>

    </table>
    <input type="submit" value="Save" />
  </form>

我们如何编写 freemarker 模板来处理这种嵌套对象的表单? 我在提交表单时遇到问题。

【问题讨论】:

  • 如果你不知道到底是什么问题,比如错误信息或其他细节,你很难得到答案。
  • 问题在于提交表单 matrix.headers 即将为空。我只得到 matrix.loginId 而没有别的。
  • 你检查过模板的输出了吗?你应该引用这些值,比如 value="${something}",如果其中可以有空格等(你也应该转义它们,最好使用#escape,但现在已经过时了。)
  • 什么是MatrixDetail??

标签: java freemarker


【解决方案1】:

我强烈建议不要这样做。

在某些情况下,表单可能可以在电子邮件中显示,但they may not always work in the email client,更不用说那些只阅读纯文本形式的电子邮件的人将无法使用它们。

如果您需要用户输入表单,请链接到您网站上的某个页面,然后将表单放在那里。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多