您的位置:首页 > 编程语言 > Java开发

Struts2 第一个实例学习

2009-07-23 14:02 239 查看
第一次接触Java的框架学习,在老大的指导下从struts2开始学习。

首先开发环境:JDK1.6+Myeclipse 6.6+tomcat6.0

下载struts2开发的jar包,地址链接:http://struts.apache.org/downloads.html 这里用的版本2.1.6

在下载的包的lib目录下

选择:commons-logging-1.0.4.jar

struts2-core-2.1.6.jar

xwork-2.1.2.jar

freemarker-2.3.13.jar

ognl-2.6.11.jar

把这些jar包放到新建的web工程的WEB-INF的lib下。

1、先建工程(Struts2Demo)

2、配置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">
<!--struts2-->
<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>
注意filter的配置细节,主要是拦截器来捕获struts2的响应请求。

3、这里的例子是一个简单的功能实现(输入两个整数,结果大于等于59则跳转到positive.jsp,否则跳转到negative.jsp)

先定义Action响应类FirstCase

package pactise;
//导入struts2所要继承的类
import com.opensymphony.xwork2.ActionSupport;
//此处定义的类必须继承ActionSupport
public class FirstCase extends ActionSupport{

private int parm1;

private int parm2;

private int Sum3;

//处理的具体方法
public String sum()
{
Sum3 =parm1+parm2;

if (Sum3>=59)
{
return "positive";
}
else
{
return "negative";
}

}

public int getresult()
{
return parm1+parm2;
}

/**
* @return the parm1
*/
public int getParm1() {
return parm1;
}

/**
* @param parm1 the parm1 to set
*/
public void setParm1(int parm1) {
this.parm1 = parm1;
}

/**
* @return the parm2
*/
public int getParm2() {
return parm2;
}

/**
* @param parm2 the parm2 to set
*/
public void setParm2(int parm2) {
this.parm2 = parm2;
}

/**
* @return the sum3
*/
public int getSum3() {
return Sum3;
}

/**
* @param sum3 the sum3 to set
*/
public void setSum3(int sum3) {
Sum3 = sum3;
}

}
4.在WEB-INF/classes下写struts.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="pactise" extends="struts-default" namespace="/Struts2Demo">
<action name="sum" class="pactise.FirstCase" method="sum">
<result name="positive" type="dispatcher">/positive.jsp</result>
<result name="negative" type="dispatcher">/negative.jsp</result>
</action>
</package>
</struts>

此处的说明:这里定义了一个action(sum),响应的方法是FirstCase类中的sum()方法,如果该方法返回值是positive则跳转到positive.jsp,返回值是negative则跳转到negative.jsp页面

5、在WebRoot下新建输入页面sum.jsp

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>

<!--标记使用struts2的标签-->
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>第一个struts2例子</title>
</head>

<body>

<!-- 利用表单提交方式来提交给action来处理-->
<s:form action="/Struts2Demo/sum" method="post">
<s:textfield name="parm1" label="操作数1"/><br>
<s:textfield name="parm2" label="操作数2"/><br>
<s:submit value="结果"/>
</s:form>
</body>
</html>

positive.jsp的具体作用是显示大于等于59的结果

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>结果1</title>
</head>
<body>
如果结果大于等于59则显示结果:<h1><s:property value="Sum3"/></h1>
</body>
</html>

negative.jsp是显示小于59的结果

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ page import="com.opensymphony.xwork2.ognl.OgnlValueStack" %>
<%@taglib prefix="s" uri="/struts-tags"%>

<html>
<head>
<title>结果2</title>
</head>
<body><br>
<%
com.opensymphony.xwork2.ognl.OgnlValueStack ovs =

(com.opensymphony.xwork2.ognl.OgnlValueStack)request.getAttribute("struts.valueStack");

out.println(ovs.findString("Sum3"));
%>
</body>
</html>
主要这里用的方法与positive.jsp的方法不一样,也可以用前面的方法。

启动tomcat后,在浏览器栏中输入:http://localhost:8080/Struts2Demo/sum.jsp即可进行测试,这个例子只是简单说明struts2的处理过程,输入没有加验证要求,因此此处学习属于入门学习的教程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: