Struts2入门教程->求两个数和!
一。在MyEclipse里新建个MyStruts2项目工程:
点击[File]->[New]->[Web Project],取名为MyStruts2的工程名称。
二。在工程里输入以下代码
1. web.xml配置文件
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.5"
- xmlns=""
- xmlns:xsi=""
- xsi:schemaLocation="
- /web-app_2_5.xsd">
- <display-name>action</display-name>
-
-
- <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>index.jsp</welcome-file>
- </welcome-file-list>
- </web-app>
通过web.xml配置文件可以看出,struts2的入口点拦截器是一个FilterDispatcher过滤器。将配置为/*,这样该过滤器将截拦所有请求。
2. FirstAction.java类文件
- package action;
- import com.opensymphony.xwork2.ActionSupport;
- public class FirstAction extends ActionSupport{
-
- private int operand1;
- private int operand2;
-
- public String execute()
- {
-
- if (getWoo() >= 0)
- {
-
- return "positive";
- }
- else
- {
-
- return "negative";
- }
-
- }
-
-
- public int getOperand1() {
- return operand1;
- }
- public void setOperand1(int operand1) {
- this.operand1 = operand1;
- }
- public int getOperand2() {
- return operand2;
- }
- public void setOperand2(int operand2) {
- this.operand2 = operand2;
- }
-
-
- public int getWoo()
- {
- return operand1 + operand2;
-
- }
- }
此类需要从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路径下)
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE struts PUBLIC
- "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "">
- <struts>
- <package name="my2" namespace="/mystruts" extends="struts-default">
- <action name="mycool" class="action.FirstAction">
- <result name="positive">/positive.jsp</result>
- <result name="negative">/negative.jsp</result>
- </action>
- </package>
- </struts>
其中
标签里的namesapce属性指定一个Servlet访问路径, 比如namespace="/mystruts", 则访问Action的路径为。
标签中的name属性表示动作名,class表示动作类名,动作名就是mycool,相对应的动作类名是action.FirstAction, 其中action.FirstAction对应的是源码包下的action包含FirstAction.java类文件。
4. sum.jsp(用户登陆接口文件, 此文件在WEB-INF目录路径下)
- <%@ page language="java" import="java.util.*" pageEncoding="GBK" %>
- <%@ taglib prefix="s" uri="/struts-tags"%>
- <html>
- <head>
- <title>输入操作数</title>
- </head>
- <body>
- 求代数和<br/>
- <s:form action="mystruts/mycool.action" >
- <s:textfield name="operand1" label=" 操作数1"/>
- <s:textfield name="operand2" label=" 操作数2" />
- <s:submit value="代数和" />
- </s:form>
- </body>
- </html>
5. positive.jsp和negative.jsp文件(此两个文件都在WEB-INF目录路径下)
positive.jsp文件:
- <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
- <%@ taglib prefix="s" uri="/struts-tags" %>
- <html>
- <head>
- <title>显示代数和</title>
- </head>
- <body>
- 代数和为非负整数<h1><s:property value="woo" /></h1>
- </body>
- </html>
negative.jsp文件:
- <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
- <%@ taglib prefix="s" uri="/struts-tags" %>
- <html>
- <head>
- <title>显示代数和</title>
- </head>
- <body>
- 代数和为负整数<h1><s:property value="woo" /></h1>
- </body>
- </html>
这两个jsp页面的实现代码基本一样,只使用了一个标签来显示Action类中 的woo属性值。标签是从request对象中获得了一个对象中得到的woo属性, 我们可以使用如下的代码来代替, 其中woo的属性是来自getWoo()方法的JavaBean隐性解析后的值。
三。现在可以在浏览器里输入来进行测试这个例子。
阅读(1396) | 评论(0) | 转发(0) |