struts2页面向action提交list对象

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、 freemarker-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;

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 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: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="name"/><br/>
</s:iterator>
  </body>
</html>

遇到的问题
1)bean里面一定要有构造函数
2)正确配发 :<s:form action="show_show" namespace="/anhuixiao">和 <s:form action="show_show.action" namespace="/anhuixiao">
 
这样 <s:form action="/anhuixiao/show_show.action">不错,但有下面警告
2010-9-24 18:27:51 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
警告: No configuration found for the specified action: '/anhuixiao/show_show.action' in namespace: '/anhuixiao'. Form action defaulting to 'action' attribute's literal value.
2010-9-24 18:27:51 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
警告: No configuration found for the specified action: '/anhuixiao/show_show.action' in namespace: '/anhuixiao'. Form action defaulting to 'action' attribute's literal value.
3) 正确配PersonListAction- conversion.properties文件
4) 正确写标签: <s:iterator value="bookList" status="status" >
<s:textfield label="Name" name="bookList[%{#status.index}].name" value="%{bookList[#status.index].name}"/><br/>
</s:iterator>
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值