web.xml
<?
xml version="1.0" encoding="UTF-8"
?>
< web-app version ="2.5"
xmlns ="http://java.sun.com/xml/ns/javaee"
xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation ="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" >
< filter >
< filter-name > struts2 </ filter-name >
< filter-class > org.apache.struts2.dispatcher.FilterDispatcher </ filter-class >
</ filter >
< filter-mapping >
< filter-name > struts2 </ filter-name >
< url-pattern > /* </ url-pattern >
</ filter-mapping >
</ web-app >
< web-app version ="2.5"
xmlns ="http://java.sun.com/xml/ns/javaee"
xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation ="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" >
< filter >
< filter-name > struts2 </ filter-name >
< filter-class > org.apache.struts2.dispatcher.FilterDispatcher </ filter-class >
</ filter >
< filter-mapping >
< filter-name > struts2 </ filter-name >
< url-pattern > /* </ url-pattern >
</ filter-mapping >
</ web-app >
struts.xml
<?
xml version="1.0" encoding="GBK"
?>
<! DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd" >
< struts >
< package name ="struts" extends ="struts-default" >
< action name ="Login" class ="HelloWorld.LoginAction" >
< result name ="input" > /helloworld/index.jsp </ result >
< result name ="success" > /helloworld/welcome.jsp </ result >
< result name ="error" > /helloworld/error.jsp </ result >
</ action >
</ package >
</ struts >
<! DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd" >
< struts >
< package name ="struts" extends ="struts-default" >
< action name ="Login" class ="HelloWorld.LoginAction" >
< result name ="input" > /helloworld/index.jsp </ result >
< result name ="success" > /helloworld/welcome.jsp </ result >
< result name ="error" > /helloworld/error.jsp </ result >
</ action >
</ package >
</ struts >
LoginAction
package
HelloWorld;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport ... {
private String username;
private String password;
private String[] books;
public String[] getBooks() ...{
return books;
}
public void setBooks(String[] books) ...{
this.books = books;
}
public String execute() throws Exception...{
if(this.getUsername().equals("admin")&&this.getPassword().equals("1234"))...{
ActionContext.getContext().getSession().put("user", this.getUsername());
BookService bs=new BookService();
this.setBooks(bs.getBooks());
return SUCCESS;
}else...{
return ERROR;
}
}
public String getUsername() ...{
return username;
}
public void setUsername(String username) ...{
this.username = username;
}
public String getPassword() ...{
return password;
}
public void setPassword(String password) ...{
this.password = password;
}
}
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport ... {
private String username;
private String password;
private String[] books;
public String[] getBooks() ...{
return books;
}
public void setBooks(String[] books) ...{
this.books = books;
}
public String execute() throws Exception...{
if(this.getUsername().equals("admin")&&this.getPassword().equals("1234"))...{
ActionContext.getContext().getSession().put("user", this.getUsername());
BookService bs=new BookService();
this.setBooks(bs.getBooks());
return SUCCESS;
}else...{
return ERROR;
}
}
public String getUsername() ...{
return username;
}
public void setUsername(String username) ...{
this.username = username;
}
public String getPassword() ...{
return password;
}
public void setPassword(String password) ...{
this.password = password;
}
}
BookService.java
package
HelloWorld;
public class BookService ... {
private String[] books=new String[]...{
"Spring 2.0",
"Hibernate 3.2",
"Struts 2.0"
};
public String[] getBooks()...{
return books;
}
}
public class BookService ... {
private String[] books=new String[]...{
"Spring 2.0",
"Hibernate 3.2",
"Struts 2.0"
};
public String[] getBooks()...{
return books;
}
}
LoginAction-validation.xml
<?
xml version="1.0" encoding="GBK"
?>
<! DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd" >
< validators >
< field name ="username" >
< field-validator type ="requiredstring" >
< message key ="user.required" />
</ field-validator >
</ field >
< field name ="password" >
< field-validator type ="requiredstring" >
< message key ="pass.required" />
</ field-validator >
</ field >
</ validators >
<! DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd" >
< validators >
< field name ="username" >
< field-validator type ="requiredstring" >
< message key ="user.required" />
</ field-validator >
</ field >
< field name ="password" >
< field-validator type ="requiredstring" >
< message key ="pass.required" />
</ field-validator >
</ field >
</ validators >
login.jsp
<%
...
@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312" %>
<% ... @ taglib prefix="s" uri="/struts-tags" %>
< html >
< head >
< title ></ title >
</ head >
< body >
< s:form action ="Login" >
< s:textfield name ="username" key ="username" ></ s:textfield >
< s:password name ="password" key ="password" ></ s:password >
< s:submit value ="login" ></ s:submit >
</ s:form >
</ body >
</ html >
pageEncoding="gb2312" %>
<% ... @ taglib prefix="s" uri="/struts-tags" %>
< html >
< head >
< title ></ title >
</ head >
< body >
< s:form action ="Login" >
< s:textfield name ="username" key ="username" ></ s:textfield >
< s:password name ="password" key ="password" ></ s:password >
< s:submit value ="login" ></ s:submit >
</ s:form >
</ body >
</ html >
welcome.jsp
<%
...
@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312" %>
<% ... @ page isELIgnored="false" %>
<% ... @ taglib prefix="s" uri="/struts-tags" %>
<% ... @ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
< html >
< head >
< title ></ title >
</ head >
< body >
欢迎${sessionScope.user}登陆
< c:out value ="${requestScope.now}" ></ c:out >
< br >
< table border ="1" >
< s:iterator value ="books" status ="index" >
< s:if test ="#index.odd==true" >
< tr style ="background-color=#cccccc" >
</ s:if >
< s:else >
< tr >
</ s:else >
< td > 书名: </ td >
< td >< s:property /></ td >
</ tr >
</ s:iterator >
</ table >
</ body >
</ html >
pageEncoding="gb2312" %>
<% ... @ page isELIgnored="false" %>
<% ... @ taglib prefix="s" uri="/struts-tags" %>
<% ... @ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
< html >
< head >
< title ></ title >
</ head >
< body >
欢迎${sessionScope.user}登陆
< c:out value ="${requestScope.now}" ></ c:out >
< br >
< table border ="1" >
< s:iterator value ="books" status ="index" >
< s:if test ="#index.odd==true" >
< tr style ="background-color=#cccccc" >
</ s:if >
< s:else >
< tr >
</ s:else >
< td > 书名: </ td >
< td >< s:property /></ td >
</ tr >
</ s:iterator >
</ table >
</ body >
</ html >
error.jsp
<%
...
@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312" %>
< html >
< head >
< title ></ title >
</ head >
< body >
登陆失败
</ body >
</ html >
pageEncoding="gb2312" %>
< html >
< head >
< title ></ title >
</ head >
< body >
登陆失败
</ body >
</ html >