Session设置: ActionContext.getContext().getSession().put("user",getUsername());
Session得到: String user=(String) ActionContext.getContext().getSession().get("user");
JSP显示EL表达式: <%@ page isELIgnored="false" %>
<!-- 迭代输出ValueStack中的books对象,其中status是迭代的序号,为每个数组元素定义了一个需要:index-->
<s:iterator value="books" status="index">
<!-- 判断序号是否为奇数 -->
<s:if test="#index.odd==true">
<tr style="background-color:#cccccc">
</s:if>
<%@taglib prefix="s" uri="/struts-tags"%> //JSP页面使用了Struts2的标签库,因此必须在JSP页面首部添加taglib指令,改taglib指令用于导入
标签库
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>
<welcome-file-list>
<welcome-file>/jsp/index.jsp</welcome-file>
</welcome-file-list>
</web-app>
Action.java:
package test2;
public interface Action {
public static final String SUCCESS="success";
public static final String NONE="none";
public static final String ERROR="error";
public static final String INPUT="input";
public static final String LOGIN="login";
//定义处理用户请求的execute抽象方法
public String execute() throws Exception;
}
LoginAction.java:
package test2;
import com.opensymphony.xwork2.ActionContext;
public class LoginAction implements Action{
private String username;
private String password;
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;
}
public String execute() throws Exception {
if(getUsername().equals("jiao")&&getPassword().equals("1111")){
//通过ActonContext对象访问Web应用Session
ActionContext.getContext().getSession().put("user",getUsername());
return SUCCESS;
}
return ERROR;
}
}
GetBooksAction.java:
package test2;
import model.BookService;
import com.opensymphony.xwork2.ActionContext;
public class GetBooksAction implements Action{
private String[] books;
public String[] getBooks() {
return books;
}
public void setBooks(String[] books) {
this.books = books;
}
//处理用户请求的execute方法
public String execute() throws Exception {
//获取Session中的user属性
String user=(String) ActionContext.getContext().getSession().get("user");
//如果user属性不为空,且该属性值为jiao
if(user!=null && user.equals("jiao")){
//创建BookService实例
BookService bs=new BookService();
//将业务逻辑组件的返回值设置成该Action的属性
setBooks(bs.getLeeBooks());
return SUCCESS;
}
return LOGIN;
}
}
struts.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "struts-config_2_0.dtd" >
<struts>
<package name="strutsqs" extends="struts-default">
<action name="Login" class="test2.LoginAction">
<result name="error">/jsp/error.jsp</result>
<result name="success">/jsp/success.jsp</result>
</action>
<action name="GetBooks" class="test2.GetBooksAction">
<result name="login">/jsp/index.jsp</result>
<result name="success">/jsp/newshowBook.jsp</result>
</action>
</package>
</struts>
BookService.java:
package model;
public class BookService {
//以一个常量数组模拟了从持久存储设备(数据库)中取出的数据
private String[] books=new String[]{"Spring2.0宝典",
"轻量级J2EE企业应用实战",
"基于J2EE的Ajax宝典",
"Struts,Spring,Hibernate整合开发"};
//业务逻辑方法,该方法返回全部图书
public String[] getLeeBooks(){
return books;
}
}
index.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>标签登陆见面</title>
</head>
<body>
<s:form action="Login">
<s:textfield name="username" label="用户名"/>
<s:textfield name="password" label="密码"/>
<s:submit value="登录"></s:submit>
</s:form>
</body>
</html>
success.jsp:
<%@ page language="java" contentType="text/html;charset=utf-8"%>
<%@ page isELIgnored="false" %>
<html>
<head>
<title>welcome.jsp</title>
</head>
<body>
欢迎,${sessionScope.user },您已经登陆!
<form action="GetBooks.action" method="post">
<input type="submit" value="查看"/>
</form>
</body>
</html>
newshowBook.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>作者阿焦</title>
</head>
<body>
<table border="1" width="360">
<caption>作者阿焦</caption>
<!-- 迭代输出ValueStack中的books对象,其中status是迭代的序号,为每个数组元素定义了一个需要:index-->
<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" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>error.jsp</title>
</head>
<body>
error <br>
</body>
</html>