struts2学习笔记系列(四)
今天介绍action之间的传值:通过在struts.xml文件中进行设置,并在最终的jsp页面中显示传递的值
一、新建项目,并建立两个action,传值在这两个action中进行。
login.java
1 package com; 2 3 public class Login { 4 private String MyContent; 5 public String execute() { 6 this.setMyContent("123456789"); 7 return "chuandi"; 8 } 9 public String getMyContent() { 10 return MyContent; 11 } 12 public void setMyContent(String myContent) { 13 MyContent = myContent; 14 } 15 16 }
MyContent就是传递的值,在这个action中为其赋值。
list.java
1 package com; 2 3 import java.util.ArrayList; 4 5 import com.sun.org.apache.bcel.internal.generic.NEW; 6 7 public class List { 8 private String content; 9 private ArrayList bookList = new ArrayList(); 10 11 public String getContent() { 12 return content; 13 } 14 15 public void setContent(String content) { 16 this.content = content; 17 } 18 19 public ArrayList getBookList() { 20 return bookList; 21 } 22 23 public void setBookList(ArrayList bookList) { 24 this.bookList = bookList; 25 } 26 27 public String execute() { 28 bookList.add("book1"); 29 bookList.add("book2"); 30 bookList.add("book3"); 31 bookList.add("book4"); 32 bookList.add("book5"); 33 return "bookListJsp"; 34 } 35 }
二、在struts.xml文件中配置
1 <?xml version="1.0" encoding="GBK" ?> 2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> 3 <struts> 4 <constant name="struts.il8n.encoding" value="gb2312"/> 5 <package name="struts2" extends="struts-default" namespace="/"> 6 <action name="login" class="com.Login"> 7 <result name="chuandi" type="redirectAction"> 8 <param name="actionName">List</param> 9 <param name="content">${MyContent}</param> 10 </result> 11 </action> 12 <action name="List" class="com.List"> 13 <result name="bookListJsp">/WEB-INF/content/MyJsp.jsp</result> 14 </action> 15 </package> 16 </struts>
在这段代码中constant是配置常量,name和value属性是必须的属性!指定struts中的字符编码是gb2312.
<param name="content">${MyContent}</param>是设置传递的参数,在新建的jsp页面中显示的参数必须是“content”,而MyContent必须好login.java中的一样!
三、新建jsp页面
MyJsp.jsp
1 <body> 2 <center> 3 这是传递的参数:${param.content}--在这里显示 <br> 4 <c:forEach var="bookName" items="${bookList}"> 5 <c:out value="${bookName}"> 6 </c:out> 7 <br> 8 </c:forEach> 9 </center> 10 </body>
在浏览器中输入地址: http://localhost:8080/strutsTest3/login.action
最终显示的页面如下: