Struth2-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>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章