【问题标题】:How to Show the Property Values in <input> text fields While Update in Spring?Spring 更新时如何在 <input> 文本字段中显示属性值?
【发布时间】:2015-10-15 16:50:09
【问题描述】:

我正在处理用户详细信息表单。我在用户表单中注册,它存储在数据库中。

现在我想在同一个表单中更新用户详细信息。当我将用户对象从 DB 获取到 Jsp 时,数据未显示在文本字段中。

我怎样才能实现这种行为。
我的示例代码是:

<form:form commandName="user" action="saveuser">
    <form:input path="userName" placeholder="name"/>
</form:form>  

我的控制器代码是:

@Controller
public UserController{
   @Reqmap........
   public String getUserDetails(@ModelAttribute("user") User user,Map<Strig,Object> model) {
        List<User> listUser = some service.getDetails();
        //My 1st way
        model.put("user",listUser);
        //My 2nd Way 
       user = listUser.get(0);

       //above two ways are not worked
       return "userform";

   }
}

【问题讨论】:

  • 任何错误异常?
  • 没有。它仅显示带有占位符的表单
  • 先走这条线 user = listUser.get(0);然后 model.put("user",listUser);稍后在
    标签中使用 modelAttribute="user"

标签: java spring hibernate jsp


【解决方案1】:

您没有为您的输入设置value 属性。试试

<form:input path="userName" placeholder="name" value="${user.userName}"/>

如果您在模型中传递user,它将起作用。

编辑:我添加了控制器部分

@RequestMapping(value="/your/url", method=RequestMethod.GET)
public String getEditForm(Model model)
{
    User myUser = retrieveUserSomehow() //this obj must be a user. If you load a list, you should get the proper user entry. Of course, check that it's not null as well, but this is trivial, right?
    model.addAttribute("user", myUser);
    return "yourViewName";
}

这是jsp

<form:form commandName="user" action="/your/url">
    <form:input path="userName" placeholder="name" value="${user.userName}"/>
</form:form>

只要User 类具有userName 属性,这将起作用。

【讨论】:

  • 请告诉我你是如何填充模型的。如果您使用第一种方法,您将传递一个列表而不是用户。你需要知道你正在使用什么。我建议您执行以下操作:User myUser = loadUserSomehow(); 然后将用户添加到模型model.addAttribute("user", myUser);
  • 我在之前的回答中添加了一些细节。希望对您有所帮助。
  • 来自@MaVVamaldo 的编辑正是我在回答中所指的。
  • @JsingH 实际上我不明白为什么我们被否决了。答案非常有意义并解决了问题。
  • 确实如此。我在代码中的很多地方都使用了这种技术。
【解决方案2】:

如果您希望用户对象在表单加载时将值从 DB 填充到 jsp,那么您需要在控制器中设置该值。例如确保 User.name 作为某个值。然后使用带有表单属性的 User.name 绑定。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多