struts2框架入门级Demo
刚刚学完了jsp+servlet整合开发,今天刚刚入门struts2,写了一篇算是入门级的demo,新手可以看一下,本人觉得对以后深入学习struts2框架很有帮助。
额!struts2框架,属于mvc框架里面的c(controller控制器)控制层,取代了大量使用jsp的原始工作方式。关于struts2的详细描述,读者可以自行百度。
ok,接下来开始讲解demo。
首先,需要在web项目中使用struts2框架就要配置web.xml,(只有在web.xml中配置了他才能用啊!)下面给出配置代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>Struts2Demo</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>
</web-app>
定义处理器标签filter,filtername指定标签的名字struts2,filterclass指定struts2的处理类。filter-map指定struts2的生效范围为对所在web应用中的全部项目生效。
接下来就是配置struts.xml,附上代码:
<?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>
<package name="gang" namespace="/" extends="struts-default">
<action name="login" class="gang.LoginAction">
<result name="error">/WEB-INF/content/error.jsp</result>
<result name="success">/WEB-INF/content/welcome.jsp</result>
</action>
</package>
<!-- 第二个程序 跳转到登录页面 -->
<package name="chen" namespace="/" extends="struts-default">
<action name="*">
<result>WEB-INF/content/{1}.jsp</result>
</action>
</package>
</struts>
配置struts.xml。package标签用于定义一个struts的处理块,其里面的name定义该块的名字,namespace定义命名空间,extends定义它继承的处理块。
action标签定义行为,name为行为的名字,class为执行该行为的类。
result标签用于针对class指定的类处理后返回的结果进行指定的视图页面的跳转。
配置完两个xml配置文件之后。首先先写一个简易的jsp登录页面。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!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><s:text name="loginPage"/></title>
</head>
<body>
<s:form action="login">
<s:textfield name="username" key="用户名"/>
<s:textfield name="password" key="密码"/>
<s:submit key="登录"/>
</s:form>
</body>
</html>
该jsp页面很简单。不过注意要用struts2的标签,所以在开头先声明
<%@taglib prefix=”s” uri=”/struts-tags”%>导入标签库。
在定义表单的action=login。额,jsp就是这么多。
接下来就是创建action类了,最关键的一步。
先贴代码。
package gang;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
//定义请求参数的username和password
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
//定义用户请求的executor方法
@Override
public String execute() throws Exception {
if(getUsername().equals("chengang")
&&getPassword().equals("123456"))
{
ActionContext.getContext().getSession()
.put("user", getUsername());
return SUCCESS;
}
return ERROR;
}
}
定义一个名为loginaction的类 他继承actionsupport类,
第一步 //定义请求参数的username和password。
第二步 //定义用户请求的executor方法
该类的代码很简单 。判断用户输入的用户名和密码是不是正确 正确返回success,错误返回error。再传给struts.xml根据返回的参数跳转相应的result。
ok,基本搞定,关于一个成功跳转的页面和一个失败跳转的页面由读者自己的需求自己搞定,很简单。
新手demo结束。
注:struts.xml要放在src目录下,即和java包同一目录。本文中java包名为chen,本文中的所有jsp全在WEB-INF/content目录下。
—-jeker-chen
2016/5/20