在springmvc中的controller所對應的函數中,如果需要從*.jsp頁面中擷取資料,可以自行在函數括号中寫,springmvc會自動封裝傳過來的。
spring-mvc.xml
中加入
1 <!-- 自動掃描 -->
2 <context:component-scan base-package="cn.itcast.springmvc.service,cn.itcast.springmvc.web.controller"/>
3 <!-- 注解驅動 -->
4 <mvc:annotation-driven/>
Controller.java 兩種形式都可以,但是第二種,jsp頁面中的參數是personList1
//清單
@RequestMapping("/listAll")
public String listAll(Map<String,Object> model){
List<Person> personList = ps.listAll();
model.put("personList", personList);
System.out.println(" listall hello");
return "person/jPersonList";
}
//清單
@RequestMapping("/listAllOther")
public String listAllOther(Model model){
List<Person> personList1 = ps.listAll();
model.addAttribute(personList1);
System.out.println(" listallother1 hello");
return "person/jPersonList";
}
jsp頁面中
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
<h2>使用者清單</h2>
<div style="padding:10px;"><a href="${pageContext.request.contextPath}/person/tocreate.action">新增</a></div>
<table border="1">
<tr>
<td>photo</td>
<td>id</td>
<td>name</td>
<td>age</td>
<td>操作</td>
</tr>
<c:forEach items="${personList}" var="p">
<tr>
<td><img src="${pageContext.request.contextPath}"/></td>
<td>${p.id}</td>
<td>${p.name}</td>
<td>${p.age}</td>
<td>
<a href="${pageContext.request.contextPath}/person/toupdate.action?id=${p.id}">修改</a>
<a href="${pageContext.request.contextPath}/person/delete.action?delId=${p.id}">删除</a>
</td>
</tr>
</c:forEach>
</table>
</body>
</html>
El表達式的寫法:${pageContext.request.contextPath}
jsp的寫法:<%=request.getContextPath()%>