Spring   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Spring MVC表单没有模型对象支持大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我对Spring MVC很新,所以请对我很轻松.

我很难理解如何在Spring MVC中实现以下要求:

> JSP列表表单,从数据库列出用户(服务,存储库工作正常).
>表单不受模型属性对象的支持.这是一个列表/查找表单!
>我需要列出符合几个“过滤器”字段的标准的用户,例如:

>地区(下拉列表)
>用户是否已存档? (是/否下拉列表)

userList.jsp

ecurity/user/list" />
modelattribute="user">

@H_450_33@

UserController.java

@requestMapping(value = "/list",method = requestMethod.GET)
public String processUserList(  @modelattribute("user") User user,@requestParam(value = "strRegionId",required = falsE) String strRegionId,@requestParam(value = "strArchived",required = falsE) String strArchived,@requestParam(value = "strSortBy",required = falsE) String strSortBy,Model model) {

    int intRegionId = strRegionId != null && strRegionId.equals("0") == false ? Integer.valueOf(strRegionId) : 0;
    Boolean booArchived = strArchived != null && strArchived.length() > 0 ? Boolean.valueOf(strArchived) : false;       
    int intSortBy = strSortBy != null && strSortBy.length() > 0 ? Integer.valueOf(strSortBy) : 1;

    Listecurityservice.listusersByRegionAndArchiveState(intRegionId,booArchived,intSortBy);

    model.addAttribute("user",new User());
    model.addAttribute("users",users);
    model.addAttribute("regions",regions);

    return "user/userList";
}

在我没有在表单中提供modelattribute的情况下,似乎根本无法使用Spring表单taglib.然后我从我的控制器中放置了一个虚拟的modelattribute,但现在我得到:

javax.servlet.ServletException:javax.servlet.jsp.JspException:org.springframework.beans.NotReadablePropertyException:bean类的属性’0’无效[spring4base.model.security.User]:Bean属性’0’不可读或没有无效的getter方法:getter的返回类型是否与setter的参数类型匹配?

正如我之前所说,该页面并不是由任何特定的POJO支持.这是一个搜索页面,必须根据之前选择的过滤器(区域,存档状态)返回用户列表(用户实体bean).每次更改下拉列表时,表单都必须自行提交(用户选择一个区域,提交在同一个映射上完成,然后用户列表仅重新加载来自该特定区域的用户).

我来自Struts 1,我们需要为每一页创建ActionForm.从我从文档中读到的内容来看,这些天不需要表单,所以我真的很期待解决这个问题.

任何帮助将不胜感激.

最佳答案
我只想创建包含搜索条件的辅助类,例如:

public class UserSearchCriteria {
    private String regionId;
    private Boolean archived;
    private String sortBy;

    // Getters and setters
}

然后我会像这样修改你的控制器方法(缺少一些代码,但这应该给你的想法).

@requestMapping(value = "/list",method = requestMethod.GET)
public String processUserList(@modelattribute("searchCriteria") UserSearchCriteria userSearchCriteria,Model model) {
    // Retrieve users and perform filtering based on search criteria
    Listecurityservice.listusers(searchCriteria);

    model.addAttribute("users",regions);

    return "user/userList";
}

然后你会使用你的过滤形式:

ecurity/user/list" var="formAction" />
modelattribute="searchCriteria">

@H_450_33@

您的代码段中的表单中有多个错误.例如,path属性接受包含要绑定的属性名称(或路径)的String,您传递了一些变量.你的< spring:url="">中也有值和var切换.我认为.

尝试一下,这不是完整的解决方案,但希望它会给你一些如何实现这一点的指示.如果您遇到任何问题,请发表评论,我会更新答案.

大佬总结

以上是大佬教程为你收集整理的Spring MVC表单没有模型对象支持全部内容,希望文章能够帮你解决Spring MVC表单没有模型对象支持所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。