怎么用controller获取表单中的值呢?拜托拜托,救救小白

Vince_WQ 2018-04-14 07:45:27
想做一个修改用户信息的模块,通过js预加载了用户的信息,但是怎么将修改后的信息提交给后台controller呢?



<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="submitupdate.do" method="post">
<table>
<tr>
<td>用户名:</td><td><input id="username" name = "username" value=""> </td>
</tr>
<tr><td>电子邮件:</td><td> <input id="email" name="email" value=""> </td></tr>
<tr><td>电话:</td><td> <input id="phone" name="phone" value=""> </td></tr>
<tr><td>密保问题:</td><td> <input id="question" name="question" value=""> </td></tr>
<tr><td>密保答案:</td><td> <input id="answer" name="answer" value=""> </td></tr>
<tr><td>角色:</td><td> <input id="role" name="role" value=""> </td></tr>
<tr>
<td colspan="2"><input type="submit" value="确认修改" />
<input type="reset" value="取消"/></td>
</tr>


</table>
</form>
</body>


<script type="text/javascript">
window.onload = function()
{
var username='<%=request.getSession().getAttribute("username")%>';
var email = '<%=request.getSession().getAttribute("email")%>';
var phone = '<%=request.getSession().getAttribute("phone")%>';
var question = '<%=request.getSession().getAttribute("question")%>';
var answer = '<%=request.getSession().getAttribute("answer")%>';
var role = '<%=request.getSession().getAttribute("role")%>';

document.getElementById("username").value = username;
document.getElementById("email").value = email;
document.getElementById("phone").value = phone;
document.getElementById("question").value = question;
document.getElementById("answer").value = answer;
document.getElementById("role").value = role;

}
</script>

</html>


controller代码

@RequestMapping("submitupdate")
public ModelAndView submitUpdate(Model model,HttpServletRequest request, HttpSession session)
{
ModelAndView mv = new ModelAndView();
String tip="";


User user1 = (User) session.getAttribute(Const.CURRENT_USER);

String username = (String) request.getAttribute("username");
System.out.println(username);
String email = (String) request.getAttribute("email");
String phone = (String) request.getAttribute("phone");
String question = (String) request.getAttribute("question");
String answer = (String) request.getAttribute("answer");
Integer role = (Integer) request.getAttribute("role");
Date createTime = (Date) request.getAttribute("createTime");

Date updateTime = new Date();


User user = new User(user1.getId(),username,null,email,phone,question,answer, role,createTime, updateTime);

ServerResponse<User> response = userService.updateSelfInfo(user);
if(response.isSuccess())
{
tip="修改成功";
}
else tip="修改失败";
mv.addObject("tip", tip);
mv.setViewName("user/updateResult");
return mv;
}
...全文
1316 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xls丶 2018-05-04
  • 打赏
  • 举报
回复
引用 7 楼 Vince_WQ 的回复:
[quote=引用 6 楼 qq_38204653 的回复:] 直接在形参中用一个实体类来接收表单的值,实体类属性名要和表单name名一样。。
我是这样写的,但是总觉得可能还有更好的方法[/quote] 我想说 这种方法还不好吗。。。
Vince_WQ 2018-04-30
  • 打赏
  • 举报
回复
引用 5 楼 wxb_hz 的回复:
你用过的是post方法,controller的@ResponseBody呢?是没贴出来还是你没有写?
没有用json
Vince_WQ 2018-04-30
  • 打赏
  • 举报
回复
引用 6 楼 qq_38204653 的回复:
直接在形参中用一个实体类来接收表单的值,实体类属性名要和表单name名一样。。
我是这样写的,但是总觉得可能还有更好的方法
xls丶 2018-04-17
  • 打赏
  • 举报
回复
直接在形参中用一个实体类来接收表单的值,实体类属性名要和表单name名一样。。
卡布奇诺er 2018-04-16
  • 打赏
  • 举报
回复
request.getParameter
诺丽果 2018-04-16
  • 打赏
  • 举报
回复
你看看你是哪块儿没有取到值
热爱生活~~~ 2018-04-16
  • 打赏
  • 举报
回复
你用过的是post方法,controller的@ResponseBody呢?是没贴出来还是你没有写?
yjsl__ 2018-04-16
  • 打赏
  • 举报
回复
用request.getParameter来接收表单的提交 getAttribute是后端用setAttribute后,才能取出来的
随风去! 2018-04-15
  • 打赏
  • 举报
回复
数据获取不到 先打开f12看一下数据是否成功向后台发送,其实你的代码没必要写的这么麻烦 在后台创建一个bean来接收 然后在检查springMVC的核心过滤器配置了没

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧