一、先看一个使用Struts 2框架实现的登录demo:
1、创建java web 项目,引入依赖jar包,拷贝到WEB-INF/lib下
commons-fileupload-1.2.1.jar
commons-logging-1.0.4.jar
freemarker-2.3.15.jar
struts2-core-2.1.8.1.jar
xwork-core-2.1.6.jar
ognl-2.7.3.jar
3、在web.xml文件中配置filter
4、提供struts2配置文件struts.xml,放到src文件下
5、建立登录jsp(login.jsp login_success.jsplogin_error.jsp)
<body>
<formaction="login.action">
用户:<inputtype="text" name="userName" ><br>
密码:<inputtype="text" name="password" ><br>
<inputtype="submit" value="登录">
</form>
</body>
6、创建struts2的action[action不用实现struts2任何接口或继承任何类,为纯粹的java类]
public String execute() throws Exception
{
if("admin".equals(userName)&&"admin".equals(password))
{
return "success";
}else
{
return "error";
}
}
7、在action中提供set、get方法,便于收集数据
8、将jsp和action配置到struts.xml文件中
<struts>
<!-- 需要继承 struts-default包,才能拥有最基本的功能-->
<package name="struts2"extends="struts-default">
<action name="login"class="com.struts2.loginAction" >
<resultname="success">/login_success.jsp</result>
<resultname="error">/login_error.jsp</result>
</action>
</package>
</struts>
在以上登录demo中,简单演示了struts2 在java web中的使用流程,其中三个核心步骤【在web.xml文件中配置过滤器】【创建action类】【在struts.xml中配置action类的调用及JSP转发】。
二、Struts 2 常用标签及其配置参数
struts.xml是Struts2框架默认加载的配置文件,用于对Struts 2 常用参数进行配置。struts2的特点之一便是n个配置文件走天下。可见配置文件在该框架中不可小觑的作用。
1、<package ></package >
在struts.xml中,以package标签的形式,设置不同action以及其对应result,转调到不同页面。
指的注意的是:
继承struts-default包以使得该package下所有action获得基本属性。可以简单的理解为package容器中存放了多个action,每个action类似于新建的文件夹,需要文件夹具有基本增删改功能,必然需要让它继承该容器。
Result标签的name值,默认为success。
可根据项目不同的需求可进行模块与配置文件相对应的方式建立多个配置文件,例如用户管理配置文件<struts-user-mgr.xml>,从中存放关于用户的package包。在大boss “struts.xml”中利用 <include file="struts-user-mgr.xml"/> 进行加载。无论多少个xml文件,在项目启动时默认加载。这样也给程序带来了一定的灵活可配置性。
2、struts.xml中常用配置参数——写在struts.xml 或struts.properties文件中均可
1) <constantname="struts.configration.xml.reload" value="true"/>
在struts.xml进行修改时,不用重启tomcat可自行加载修改后内容。
2) <constantname="struts.devMode" value="true"/>
页面报错时,向用户显示更友好的界面信息。
<?xml version="1.0"encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constantname="struts.configration.xml.reload" value="true"/>
<constantname="struts.devMode" value="true"/>
<includefile="struts-user-mgr.xml"/>
</struts>