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

一个简单的Struts2应用

2016-03-30 23:25 429 查看
简单的总结一下一个Struts2应用遇到的问题

1.下载Struts2的jar包

我用的是struts-2.3.16.1-all.zip这个版本

2.建立一个web procejt



3. 配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
<display-name>Struts Blank</display-name>

<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>

</web-app>


4.配置struts.xml

这里要特别注意不能漏写会报错

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
<!-- 定义一个名称为test的包 继承Struts2的默认包 -->
<package name="test" extends="struts-default">
<!-- 配置业务控制器的结果视图映射 -->
<action name="sayWelcome" class="myActions.sayHello">
<!-- 配置成功时的视图资源 -->
<result name="success">/welcome.jsp</result>
<!-- 配置验证不成工时的视图资源 -->
<result name="input">/index.jsp</result>
</action>

</package>
</struts>


5.写action类

package myActions;

import com.opensymphony.xwork2.ActionSupport;

public class sayHello extends ActionSupport {
private String username;

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String execute() throws Exception {
return SUCCESS;

}

public void validate() {
if (username == null || username.trim().length() < 5) {
addFieldError(username, "用户名错误!");
}
}

}


6.写jsp页面第一个为登录第二个登录成功跳转后的

<%@page contentType="text/html;" pageEncoding="utf-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html" http-equiv="Content-Type" charset="utf-8">
<title>第一个Struts应用</title>
</head>

<body>
<s:form action="sayWelcome">
请输入用户名:<s:textfield name="username" size="20" />
<s:submit value="确定" />
<s:reset value="重写" />
</s:form>
<s:if test="hasFieldErrors()">
<s:fielderror />
</s:if>
</body>
</html>


<%@ page contentType="text/html" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>登陆成功</title>
</head>
<body>
<!--${username}OGNL表达式用于获取username变量值  -->
${username}
</body>
</html>


下面简单的描述一下执行过程

1.通过浏览器访问index.jsp页面单击提交按钮,请求sayWelcome

2.sayWelcome请求被Struts2的核心拦截器ActionContextCleanUp和FliterDispatcher拦截处理,FliterDispatcher拦截器查询Action映射器,然后将请求交给Action处理。

3.Action根据配置管理器查询struts.xml配置文件,找到sayWelcome控制器类sayHello,然后创建Action实例。

4.在Action运行环境中,首先调用Struts拦截器,然后调用validate()方法验证表单 ,验证通过则调用execute()方法处理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: