struts适用于MVC开发模式。
首先要先下载必要的jar包支持导入工程。在struts2的包中某些包需要插件导入包没插件的包会出现错误。
基本功能包:
ognl-2.611.jar,
commons-logging-1.04.jar,
freemarker-2.3.8.jar,
xwork-2.0.5.jar,
struts-core-2.0.11.2.jar 五个包就可以。
struts主要开发MVC中的controller控制层
创建action类LoginAction
下面是配置用法:框架可以将V层提交的数据自动封装进入Action 两种接受参数的方式
这两种方式在API中都有封装好的拦截器
(1)域驱动方式
1.在创建的类中定义与表单提交域中名字相同的变量
2.提供getter和setter方法
private String name; private String password; public String getName() { return name; } public String setName(String name) { this.name=name; } public String getPassword() { return password; } public String setPassword(String password) { this.password=password; }
(2)模块驱动
可以通过模型对象的方式封装请求参数
首先要继承接口覆盖getModel方法
ModelDriven<Admin>
Admin为模型对象(实例化一个封装类)
private Admin admin=new Admin();
public class LoginAction implements ModelDriven<Admin>{ private Admin admin=new Admin(); AdminBiz adminbiz=new AdminBizImpl(); @Override public Admin getModel() { // TODO Auto-generated method stub return admin; }
选择第二种注意 提交的信息参数必须和封装的变量一一对应 并且提供getter和setter方法。
选择上面一种方式还要必须在action类中有一个public String execute()方法,该方法在访问action时被框架自动调用实现控制逻辑。
接下来就要配置了,新建一个struts.xml文件在src目录下才能使用
默认情况下都要继承struts-default.xml中的struts-default包,其中定义了许多必要的的对象。
<?xml version="1.0" encoding="UTF-8"?> <struts> <package name="com.icer.action" extends="struts-default"> <action name="Login" class="com.icer.action.LoginAction"> <result name="success">/index.jsp</result> <result name="fail">/index.jsp</result> </action> </package> </struts>
在index.jsp中的提交action=“Login”是struts配置中的name
当有多个sturts.xml文件时可以让最开始的父类继承struts-default其他只要继承这个父类xml就可以。如下
<struts> <constant name="struts.ui.theme" value="simple"></constant> <constant name="struts.action.excludePattern" value="/dwr.*,/dwr/.*,/dwr/test/.*" /> <package name="default" namespace="/" extends="struts-default"> <action name="valcode" class="org.icer.easygo.action.common.ValcodeAction"> <result type="stream"> <param name="contentType">image/jpeg</param> <param name="inputName">input</param> </result> </action> </package> <include file="struts-user.xml"></include> <include file="struts-category.xml"></include> <include file="struts-product.xml"></include> <include file="struts-cart.xml"></include> </struts>
struts-user.xml
<struts> <package name="user" namespace="/user" extends="default"> <action name="user*" class="useraction" method="{1}"> <result>${nextpage }</result> <result name="success_red" type="redirect">${nextpage }</result> </action> </package> </struts>
最后要在项目的web.xml中定义struts的过滤器
<!-- 配置struts2的过滤器 --> <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>