spring mvc jsp 和 后台controller 传值交互

用spring mvc 接收jsp页面form表单传的值,接收不到,最后找到原因是因为写法问题
后台代码:

@Controller

@RequestMapping(value = "/my/user")

public class UserController {

private Log log LogFactory.getLog(UserController.class);


@Autowired

private UserService userService;

 

@RequestMapping(value = "/findList")

//user 用于接收jsp 页面 form表单的属性值,model用于向jsp传返回值

public ModelAndView findList(User user,Model model){

ModelAndView mv new ModelAndView("/page/user/list");

try {

System.out.println(user.getName());

List list userService.findAll();

model.addAttribute("userName"user.getName());

mv.getModel().put("list"list);

mv.getModel().put("userName""小馒头");

catch (Exception e) {

log.error(e);

}

return mv;

}

}


jsp代码:

向后台传值的form表单:

<</span>html>

<</span>meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<</span>body>

<</span>h2>Hello World!</</span>h2>

<</span>form action="/MyProject/my/user/findList" method="post">

<</span>input type="text" name="name"/>

<</span>input type="submit" value="提交"/>

</</span>form>

</</span>body>

 

</</span>html>


需要注意的是,跟Struts2不一样的是,向spring mvc后台传值jsp form表单直接写对象的属性名,不用向Struts2那样需要 对象.属性名 (user.name)这样,


后台向前台传值有很多种方式,这里只列出了两种 

1.使用 ModelAndView 

ModelAndView mv new ModelAndView("/page/user/list");

mv.getModel().put("list"list);

mv.getModel().put("userName""小馒头");

2.使用 Model

model.addAttribute("userName"user.getName());

具体写法参数上面的controller代码。


接收返回值的jsp代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%@ page isELIgnored="false" %> <!-- 是否启用el表达式 -- >

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>用户列表页面</title>

</head>

<body>

这是用户列表页面${userName}

<table>

<c:forEach items="${list}" var="user">

<tr>

<td>${user.name }</td>

<td>${user.sex }</td>

<td>${user.age }</td>

</tr>

</c:forEach>

</table>

</body> 

</html>


这里要注意的是,一开始没有加这句话 <%@ page isELIgnored="false" %> el表达式不起作用,直接输出了${userName} ${user.name} ${user.sex} ${user.age},加上 这句话 el表达式才起作用

默认EL忽略true的,所以不加EL是没法的.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值