【问题标题】:How to display input field in Spring MVC list如何在 Spring MVC 列表中显示输入字段
【发布时间】:2014-01-22 03:28:23
【问题描述】:

在我的 Spring Roo 项目中,我生成了一个带有 MVC 控制器和视图的“事件”域对象。

我想有一个功能,事件(都是字符串值)都是加密的,拥有相应密钥的授权用户可以获得解密后的事件信息。

目前,当用户按下“列出所有事件”按钮时,会显示所有事件的列表(所有加密字符串值)。

我需要在用户输入密钥的事件列表 (list.jspx) 中显示的每个事件旁边添加一个输入字段。然后控制器将使用输入的密钥值解密并显示解密后的事件信息(在 show.jspx 中)。

在 list.jspx 文件中,我添加了:

<form:create id="fl_au_edu_usyd_latte_experience_domain_Event" modelAttribute="event" path="/events" render="${empty dependencies}" z="">
<field:input path="partialKey" id="l_au_edu_usyd_latte_experience_domain_Event_partialKey"/>
</form:create>

在 EventController_Roo_Controller.aj 文件中,我添加了:

@RequestMapping(value = "/{id}", produces = "text/html")
public String EventController.show(@PathVariable("id") Long id, Model uiModel, String partialKey) {
    addDateTimeFormatPatterns(uiModel);
    uiModel.addAttribute("partialKey", partial_key);


    uiModel.addAttribute("event", Event.findEvent(id));
    uiModel.addAttribute("itemId", id);
    return "events/show";
}

但是,当我运行项目时,我得到了错误:

org.apache.jasper.JasperException: /WEB-INF/views/events/list.jspx(12,146) The prefix "form" for element "form:create" is not bound.

有没有办法做到这一点?

【问题讨论】:

    标签: java spring spring-mvc spring-roo jspx


    【解决方案1】:

    我认为这个问题是由于您没有配置响应文件的前缀。你需要在springmvc-servlet.xml中配置一个viewresolver

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

    【讨论】:

    • viewresolver 似乎设置正确。表单在 create.jspx 文件中正确显示,但在 list.jspx 文件中不正确显示(两者都在同一目录中)
    【解决方案2】:

    我认为您没有 Roo 将在您的项目中安装的 WEB-INF/tags 文件夹。即您的 WEB-INF 的标签文件夹中没有表格。请仔细检查

    【讨论】:

    • 添加标签库给我这个错误:org.apache.jasper.JasperException: /WEB-INF/views/events/list.jspx(1,2) 文档中根元素之前的标记必须格式正确。
    • 我已经有了这个由 Spring Roo 在页面顶部附近为我生成的代码:
      java.sun.com/JSP/Page" xmlns:page="urn:jsptagdir:/WEB -INF/tags/form" xmlns:table="urn:jsptagdir:/WEB-INF/tags/form/fields" version="2.0">
    • 我检查了文件夹,所有标签都在那里。表单显示在 create.jspx 中,但由于某种原因不在 list.jspx 文件中。两者都在同一个目录中。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签