Struts2练习2--简单的MVC模式

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>

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值