java - 使用 Spring 和 Spring Roo 的多种形式

标签 java spring spring-mvc spring-roo

我正在学习如何使用 Spring 和 Spring Roo。我有一个场景,我希望能够在单个页面上处理多个表单。我的例子是有一个单一的页面,用户可以在单一页面上更新一个人的信息和地址。从数据的角度来看,这是两个不同的实体。

这是我的看法。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<div xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:form="urn:jsptagdir:/WEB-INF/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
    <jsp:output omit-xml-declaration="yes"/>
    <form:update id="fu_com_demo_demodb_Person" idField="personId" modelAttribute="person" path="/people" versionField="Version" z="lAv+o27QE4hkXQtPdKu/YDmF4fo=">
        <field:simple field="addresses" id="c_com_demo_demodb_Person_addresses" messageCode="entity_reference_not_managed" messageCodeAttribute="Address" z="Qv+QHD5RorE8Zaf6FDT4MO0J55k="/>
        <field:input field="firstName" id="c_com_demo_demodb_Person_firstName" z="vS8EgEHhso2KgUrCIomUBqF4QLI="/>
        <field:input field="lastName" id="c_com_demo_demodb_Person_lastName" z="w0qweGLAQxRPJxxAehZxWpoaVsg="/>
        <field:input field="middleName" id="c_com_demo_demodb_Person_middleName" z="5cuoVeM25fLeZP1PnBA/9Dh13xE="/>
    </form:update>
    <form:update id="fu_com_demo_demodb_Address" idField="addressId" modelAttribute="address" path="/addresses" versionField="Version" z="QH/Ew5OSBOxqFzEqNt6Y/qpjF8g=">
        <field:select field="personId" id="c_com_demo_demodb_Address_personId" itemValue="personId" items="${people}" path="/people" z="ljx4bVEfoA3j/ChDMHPhkKZM4tc="/>
        <field:input field="line1" id="c_com_demo_demodb_Address_line1" z="VzcJoyGz+Kg9YCf9RPzbQ7IYkbk="/>
        <field:input field="line2" id="c_com_demo_demodb_Address_line2" z="FxoV1g01MRUJhNNHGyR2obbr1z8="/>
        <field:input field="city" id="c_com_demo_demodb_Address_city" z="nFaz+RzSUsjxA6pj7O4p6K4Q+2U="/>
        <field:input field="state" id="c_com_demo_demodb_Address_state" z="idFpXGWkGZvlVI/YOk46rXRu2ZA="/>
        <field:input field="zipCode" id="c_com_demo_demodb_Address_zipCode" z="sKg1vzHjd5yi/EjhvwI1iXlVY7c="/>
    </form:update>
</div>

我一直无法弄清楚的是如何创建一个可以正确处理上面 View 的 Controller 。我不确定如何处理 @RooWebScaffold 和 @RequestMapping。

如有任何建议或帮助,我们将不胜感激。谢谢。

最佳答案

最简单的方法是让 Roo 生成用于人员更新的 Controller 。然后从 Controller 类中的 ?_Roo_Controller.aj 文件复制创建的 Controller 方法(updateForm)(在 AspectJ 文件的大纲 View 中使用“插入”重构。)。

Roo 会识别并从 aj 文件中删除 updateForm 方法。

然后您可以根据需要增强该方法。


无论如何,对于您的 Two-Form-Page,您将离开 Roo 的支持。因此,让 roo 生成 Controller 类和 jspx,然后禁用 roo 对该 Controller 的支持可能会更好、更干净。 (运行“Push In”并删除 @RooWebScaffold 注释)Roo 将删除 ?_Roo_Controller.aj 文件。

但是不要删除@RequestMapping注解,它是Spring-MVC的一部分(不是Roo的)。

关于java - 使用 Spring 和 Spring Roo 的多种形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7129950/

相关文章:

java - ValidateJarFile(D :\path\) - jar not loaded. 请参阅 Servlet 规范 3.0,第 10.7.2 节。违规类 : javax/servlet/Servlet. 类

java - 如何运行gulp任务和spring-boot :run together with maven?

spring - 如何知道 PagingState 已经到达最后一页?

java - 是否可以在JSP中访问方法注释

java - 您可以设置一个多对象数组并从中调用一个方法吗?

java - 在 Android 应用程序中放大图像时如何避免伪影/模糊?

java - 使用 Java 和 xPath 在 OWL/XML 文件中提取节点后命名空间前缀未声明错误

java - 如何禁用/删除 Eclipse Graphiti 编辑器的调色板?

spring - 我无法在 Springboot-Kotlin 中排除 MongoAutoConfiguration (MongoSocketOpenException)

java - 我可以在 Spring Rest 方法中混合媒体类型吗?