Chinaunix首页 | 论坛 | 博客
  • 博客访问: 172518
  • 博文数量: 49
  • 博客积分: 1231
  • 博客等级: 少尉
  • 技术积分: 967
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-02 00:04
个人简介

-->软硬件结合的系统级开发工程师,带过团队,爱好心理学,哲学,艺术...偶像:达芬奇

文章存档

2014年(2)

2013年(4)

2012年(15)

2011年(28)

分类: 系统运维

2013-01-11 18:08:49

 
Struts2入门教程->求两个数和!
 
一。在MyEclipse里新建个MyStruts2项目工程:
  点击[File]->[New]->[Web Project],取名为MyStruts2的工程名称。
 
二。在工程里输入以下代码
 
1. web.xml配置文件

点击(此处)折叠或打开

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5"
  3.     xmlns="http://java.sun.com/xml/ns/javaee"
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7.  <display-name>action</display-name>
  8.   
  9.   
  10.    <filter>
  11.     <filter-name>struts2</filter-name>
  12.     <filter-class>
  13.         org.apache.struts2.dispatcher.FilterDispatcher
  14.     </filter-class>
  15.   </filter>
  16.   
  17.   <filter-mapping>
  18.     <filter-name>struts2</filter-name>
  19.     <url-pattern>/*</url-pattern>
  20.   </filter-mapping>
  21.   
  22.   <welcome-file-list>
  23.     <welcome-file>index.jsp</welcome-file>
  24.   </welcome-file-list>

  25. </web-app>
  通过web.xml配置文件可以看出,struts2的入口点拦截器是一个FilterDispatcher过滤器。将配置为/*,这样该过滤器将截拦所有请求。
 
2. FirstAction.java类文件

点击(此处)折叠或打开

  1. package action;

  2. import com.opensymphony.xwork2.ActionSupport;

  3. public class FirstAction extends ActionSupport{
  4.     
  5.     private int operand1;
  6.     private int operand2;
  7.     
  8.     public String execute()
  9.     {
  10.         
  11.         if (getWoo() >= 0)
  12.         {
  13.             
  14.             return "positive";
  15.         }
  16.         else
  17.         {
  18.             
  19.             return "negative";
  20.         }
  21.             
  22.     }
  23.     
  24.         
  25.     public int getOperand1() {
  26.         return operand1;
  27.     }

  28.     public void setOperand1(int operand1) {
  29.         this.operand1 = operand1;
  30.     }

  31.     public int getOperand2() {
  32.         return operand2;
  33.     }

  34.     public void setOperand2(int operand2) {
  35.         this.operand2 = operand2;
  36.     }
  37.     
  38.     
  39.     public int getWoo()
  40.     {
  41.          return operand1 + operand2;
  42.     
  43.     }
  此类需要从com.opensymphony.xwork2.ActionSupport类继承。继承后,需要重写execute()方法,此方法返回的字符串是要返回处理后的页面名称的前缀名称,比如代码中的return "positive", 其实就是返回处理后的positive.jsp页面。此类以实现计算两个数的和的Action行为。
  struts2容器在获取标准JavaBean的方法时,会在struts2容器里,把这个方法解吸成JavaBean的标准模式,比如代码中的getWoo()方法,相加后的两个数的和会隐性存放在woo这个属性变量里,并返回到jsp页面上去。
 
3. struts.xml配置文件(此文件应该在WEB-INF/classes/struts.xml路径下)

点击(此处)折叠或打开

  1. <?xml version="1.0" encoding="UTF-8"?>

  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
  4. <struts>
  5.     <package name="my2" namespace="/mystruts" extends="struts-default">
  6.         <action name="mycool" class="action.FirstAction">
  7.             <result name="positive">/positive.jsp</result>
  8.             <result name="negative">/negative.jsp</result>
  9.         </action>
  10.     </package>
  11. </struts>
  其中标签里的namesapce属性指定一个Servlet访问路径, 比如namespace="/mystruts", 则访问Action的路径为http://localhost:8080/MyStruct2/mystruts/mycool.action
  标签中的name属性表示动作名,class表示动作类名,动作名就是mycool,相对应的动作类名是action.FirstAction, 其中action.FirstAction对应的是源码包下的action包含FirstAction.java类文件。

 
4. sum.jsp(用户登陆接口文件, 此文件在WEB-INF目录路径下)
 

点击(此处)折叠或打开

  1. <%@ page language="java" import="java.util.*" pageEncoding="GBK" %>
  2. <%@ taglib prefix="s" uri="/struts-tags"%>

  3. <html>
  4.     <head>
  5.         <title>输入操作数</title>
  6.     </head>
  7.     <body>
  8.         求代数和<br/>
  9.         <s:form action="mystruts/mycool.action" >
  10.             <s:textfield name="operand1" label=" 操作数1"/>
  11.             <s:textfield name="operand2" label=" 操作数2" />
  12.             <s:submit value="代数和" />
  13.         </s:form>
  14.     </body>
  15. </html>
 
5. positive.jsp和negative.jsp文件(此两个文件都在WEB-INF目录路径下)

  positive.jsp文件:

点击(此处)折叠或打开

  1. <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
  2. <%@ taglib prefix="s" uri="/struts-tags" %>

  3. <html>
  4.     <head>
  5.         <title>显示代数和</title>
  6.     </head>
  7.     <body>
  8.         代数和为非负整数<h1><s:property value="woo" /></h1>
  9.     </body>
  10. </html>
  negative.jsp文件:

点击(此处)折叠或打开

  1. <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
  2. <%@ taglib prefix="s" uri="/struts-tags" %>

  3. <html>
  4.     <head>
  5.         <title>显示代数和</title>
  6.     </head>
  7.     <body>
  8.         代数和为负整数<h1><s:property value="woo" /></h1>
  9.     </body>
  10. </html>
  这两个jsp页面的实现代码基本一样,只使用了一个标签来显示Action类中 的woo属性值。标签是从request对象中获得了一个对象中得到的woo属性, 我们可以使用如下的代码来代替, 其中woo的属性是来自getWoo()方法的JavaBean隐性解析后的值。

三。现在可以在浏览器里输入http://localhost:8080/MyStruct2/sum.jsp来进行测试这个例子。





阅读(658) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~