天天看點

controller與jsp傳值

在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()%>