java - 当我需要在命令类之外的表单上显示数据时,如何使用 SimpleFormController?

标签 java hibernate spring-mvc velocity

我在 Java 中使用 hibernate、Spring 和 Velocity。

我正在扩展 SimpleFormController 并为命令类使用典型的“用户”对象。 我希望使用表单更新或创建 User 类,并将其反射回 hibernate,以便可以在数据库中更新值。

我的问题是,我希望在解析为“userEdit”的速度模板中显示附加数据,但我不想将此数据存储在用户对象中。

我的用户对象简化为:

public class User implements Serializable {

    private String username;
    private String password;

    private Set<Object> allowedNames;

    ...
}

我的bean定义如下:

<bean id="userEditController" class="com.UserEditController">
    <property name="sessionForm"><value>true</value></property>
    <property name="commandClass"><value>com.data.User</value></property>
    <property name="validator"><ref bean="userValidator"/></property>
    <property name="formView"><value>userEdit</value></property>
    <property name="successView"><value>UserEdit</value></property>
    <property name="dao">
        <ref bean="myDAO"/>
    </property>
</bean>

“allowedNames”变量包含数据库中的一些名称列表,并且特定于用户。我想知道如何显示完整的名称列表(从数据库中提取),以便我可以在我的 userEdit Velocity 模板中使用它。因为我想在“allNames”旁边显示“allowedNames”。

使用 SimpleFormController 允许我直接控制 User 对象,创建新的 Users 或在数据库中更新它们,但是,向表单中添加更多信息对我来说非常困难,因为我被 User 对象困住了。

'allNames' 不属于 User 类,因此我尝试创建一个对象来保存 User 对象和一个名为 allNames 的 Set。我将其称为我的 UserEdit 类。我的问题是,我无法在速度模板(例如 $command.user.username )中引用没有访问器的 User 对象变量,而且我也无法绑定(bind)它们以防止错误或使用 User 对象将更改反射(reflect)并形成更改回数据库。

我的问题是关于如何在我的表单中使用这个“UserEdit”对象,或者使用不同的方法,以便我的表单可以拥有用户数据和其他数据,同时能够更新 User 对象(反射(reflect)在 hibernate 中)。有人有解决这个问题的方法吗?

最佳答案

我自己发现的是,继承的代码确实不会通过 Spring 中的某种反射自动更新 commandClass User 对象。

我为解决问题所做的就是创建一个 UserEdit 对象。它保存了来自表单的所有必要数据,然后我将这些数据放入 User 对象中,然后使用我的 DAO 保存它。

关于java - 当我需要在命令类之外的表单上显示数据时,如何使用 SimpleFormController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9287915/

相关文章:

java - 如何搜索电影并更喜欢标题中包含搜索词的结果而不是描述中包含搜索词的结果

java - 发送前预览电子邮件

java - Tomcat Spring MVC : Request Mapping does not work

java - Spring 在将数据发布到 Controller 时将请求标记为不正确

java - 如何在JSP页面上显示图像

java - 父级有子级列表或子级有父级引用

java - 保存大量对象列表需要花费大量时间

java - Hibernate custom dialect for DATE function 加速查询

jquery - 所需的字符串参数 'userName' 不存在

java - 使用迭代器降序斐波那契数