struts2是建立在struts1.x和webwork框架基础上的是一种全新的MVC框架技术,struts2的核心设计思想来自webwork,因此Struts2的MVC架构与webwork基本相同。
废话少说先来个用户登陆的例子:
从官方网站上下载struts2的最新版本。
搭建一个struts2应用大概分这么几个步骤:
1.引入struts2工程需要的运行库文件。
将下载来的struts2文件中的lib文件夹下 :commons-logging-1.0.4.jar
freemark-2.3.8.jar ,ognl-2.6.11.jar,struts2-core-2.0.11.jar,
xwork-2.0.4.jar 复制到webroot/web-inf/lib文件夹下
2.创建并配置web.xml(eclipse中web项目自动生成无需创建)
<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>
让所有的客户端请求都经由FilterDispatcher处理并把过滤后的结果提交给struts2处理。
3.编写Action
struts2直接使用action 来封装http请求参数,因此,action类里面应该包括与请求参数相对应的属性且提供相应的get set方法。
为aciton增加一个execute方法,因为struts2框架默认会执行这个方法,当然也可以单独在struts.xml中为action中指定method属性。
action类返回一个标准的字符串,该字符串是一个逻辑视图名,该视图名通过struts.xml对应一个物理视图。
UserAction
public class UserAction{
private String username;//表单属性对应字段
private String password;
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String execute() throws Exception {
/*
* 只有用户名为zhangsan,密码为123456方可成功登录
*/
if (username.equals("zhangsan") && password.equals("123456")) {
return "success";
} else {
return "error";
}
}
}
4.配置struts.xml
在classpath下面建立struts.xml文件 如src下面建立 ,编译后该文件会出现在web-inf/classes
<struts>
<package name="strutsdemo" extends="struts-default">
<action name="loginUser" class="com.zq.demo.struts.UserAction">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
最后编写视图页面
本例子中涉及3个视图页面登录页面,登录成功,登录失败
登录页面
<%@ page language="java" contentType="text/html; charset=GB2312"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>登录页面</title>
</head>
<body>
<center>
<s:form action="loginUser">
<s:textfield name="username" label="用户名" />
<s:password name="password" label="密码" />
<s:submit value="确定" />
<s:reset value="重置" />
</s:form>
</center>
</body>
</html>
登录成功页面
<%@ page language="java" pageEncoding="GB2312"%>
<html>
<head>
<title>成功页面</title>
</head>
<body>
<p align="center">
登录成功!!!您的用户名是<s:property value="username"/>
</p>
</body>
</html>
登录失败
<%@ page language="java" pageEncoding="GB2312"%>
<html>
<head>
<title>失败页面</title>
</head>
<body>
<p align="center">
登录失败!!!
</p>
</body>
</html>
至此,第一个struts2应用完成了,欢迎补充。