structs2标签 我原来从action传一个list<object[]>到jsp页面,现在想让list在页面多得到一个属性,再把list传回到action中,要怎么写啊?把jsp页面里要的代码写出来就行,要用structs2标签。我举个例子:<s:iterator value="student" id="student" status="s">
<s:property value="student[#s.index][0]"/>
<s:property value="student[#s.index][1]"/>
</s:iterator>
这个是action传过来的list,有两个属性了,我希望可以在jsp页面中使它再多一个属性,让回传回到action中去。
这个其实简单的来说就是,我action里传了个学生列表(每个学生有id name之类的属性)到页面上,现在我希望的是可以多一个属性,在每个学生前面都有个选择框,当在选择框里打了勾以后,这个属性的值就为1,没打勾的就为0,这样传回到action里去,这样就可以知道哪里学生被选择了,哪些没被选择
<s:property value="student[#s.index][0]"/>
<s:property value="student[#s.index][1]"/>
</s:iterator>
这个是action传过来的list,有两个属性了,我希望可以在jsp页面中使它再多一个属性,让回传回到action中去。
这个其实简单的来说就是,我action里传了个学生列表(每个学生有id name之类的属性)到页面上,现在我希望的是可以多一个属性,在每个学生前面都有个选择框,当在选择框里打了勾以后,这个属性的值就为1,没打勾的就为0,这样传回到action里去,这样就可以知道哪里学生被选择了,哪些没被选择
<s:iterator value="student" id="student" status="s">
<input type="checkbox" name="ids" value="student[#s.index][0]">
<s:property value="student[#s.index][0]"/>
<s:property value="student[#s.index][1]"/>
</s:iterator>可以吧,这个checkbox的name属性值要存在,否则就不这封装表单数据值了嘛
<s:iterator value="#request.list" id="list">
${doclistTitle
</s:iterator>
1)环境: jdk1.5,tomcat5.5
2)导入sturts2jar包: commons- fileupload-1.2.1.jar、commons-io-1.3.2.jar、commons-logging-1.0.4.jar、 freeer-2.3.15.jar、ognl-2.7.3.jar、struts2-core-2.1.8.jar、xwork-core- 2.1.6.jar。
3)web.xml内容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter> <filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
4)struts.xml文件内容:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"><struts>
<constant name="struts.ui.theme" value="simple" />
<package name="anhuixiao" namespace="/anhuixiao" extends="struts-default">
<action name="list" class="cn.anhuixiao.action.PersonListAction">
<result name="list">/WEB-INF/page/personlist.jsp</result>
</action>
<action name="show_*" class="cn.anhuixiao.action.PersonListAction" method="{1}">
<result name="show">/WEB-INF/page/personlistShow.jsp</result>
</action>
</package>
</struts>
5)PersonListAction- conversion.properties内容
Element_bookList=cn.anhuixiao.bean.Book此文件放 PersonListAction.java同一目录下
6)PersonListAction.java 内容
package cn.anhuixiao.action;import java.util.ArrayList;
import java.util.List;import cn.anhuixiao.bean.Book;public class PersonListAction {private List<Book> bookList;public String execute() {
bookList = new ArrayList<Book>();
bookList.add(new Book(56, "javaweb", 90));
bookList.add(new Book(80, "ejb", 78));
bookList.add(new Book(23, "spring", 50));
return "list";
}public String show() {for (Book book : bookList) {
System.out.println(book.getName());
}return "show";
}public List<Book> getBookList() {
return bookList;
}public void setBookList(List<Book> bookList) {
this.bookList = bookList;
}
}
7)Book.java内容:
package cn.anhuixiao.bean;public class Book {
private Integer bookid;
private String name;
private Integer price;
private boolean checked;public Integer getBookid() {
return bookid;
}
public void setBookid(Integer bookid) {
this.bookid = bookid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
} public boolean isChecked() {
return checked;
}
public void setChecked(boolean checked) {
this.checked = checked;
}
public Book(Integer bookid, String name, Integer price) {
this.bookid = bookid;
this.name = name;
this.price = price;
}public Book(String name) {
this.name = name;
}public Book(){}
}8)personlist.jsp 内容:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'personlist.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0"> </head>
<body>
<s:form action="show_show" namespace="/anhuixiao">
<s:iterator value="bookList" status="status" >
<s:checkbox name="bookList[%{#status.index}].checked" value="%{bookList[#status.index].checked}"/>
<s:textfield label="Name" name="bookList[%{#status.index}].name" value="%{bookList[#status.index].name}"/><br/>
</s:iterator>
<s:submit value="submit" />
</s:form>
</body>
</html>
9)personlistShow.jsp 内容
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'personlist.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
改变后的结果<br/>
<s:iterator value="bookList" status="status" >
<s:property value="checked"/>:<s:property value="name"/><br/>
</s:iterator>
</body>
</html>
2)personlist.jsp中添加<s:checkbox name="bookList[%{#status.index}].checked" value="%{bookList[#status.index].checked}"/>