struts2的配置
来源:互联网 发布:软件测试作业 编辑:程序博客网 时间:2024/05/22 13:47
一、导入所需的jar包,如
图
二、修改web.xml文件,添加如下配置
<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>
三、在src目录下,添加struts.xml文件,内容如下
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><struts> <constant name="struts.i18n.encoding" value="UTF-8"/> <constant name="struts.devMode" value="false"/> <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant> <package name="methods" namespace="/say" extends="struts-default"> <default-action-ref name="index" /> <global-results> <result name="error">/error.jsp</result> </global-results> <global-exception-mappings> <exception-mapping exception="java.lang.Exception" result="error"/> </global-exception-mappings> <action name="add" class="com.test.action.SayHelloAction" method="add"> <result name="success"> /add.jsp </result> </action> <action name="save" class="com.test.action.SayHelloAction" method="save"> <result name="success"> /save.jsp </result> </action> <action name="delete" class="com.test.action.SayHelloAction" method="delete"> <result name="success">/delete.jsp</result> </action> </package> <!-- Add packages here --></struts>
四、编写Action类。类要继承extends ActionSupport。
五、在struts.xml文件下,配置Action
1.
属性
是否必须
说明
name
是
action的名字,用于匹配URL
class
否
Action实现类的完整类名
method
否
执行Action类时调用的方法
convert
否
应用于action的类型转换的完整类名
<action name="user" class="org.lesson05.UserAction">
<package name="methods" namespace="/"
extends="struts-default">
method="add">
method="edit">
class="org.lesson05.MethodAction"
</package>
对应的MethodAction类,代码如下:
public class MethodAction extends ActionSupport
{
}
方法具有相同的格式),这样就可以在同一个类中完成相关的任务,而不需要去编写不
同的Action类。
2.查找doMethod()形式的方法.
Struts2的动态方法调用。
式为 actionName!methodName.action
法
提示,这种调用方式会带来安全隐患!
4.模拟Struts1中的ForwardAction
<package name="defaultAction" namespace="/default"
extends="struts-default">
class="org.lesson05.DefaultAction">
default-acion-ref必须在action元素之前使用。
6.通配符映射
class="org.struts2.lesson05.News{1}Action">
method="{2}">
class="org.struts2.lesson05.NewsAction" method="{1}">
六、通过注解方法配置Action,方法如下
要使用注解方式,我们必须添加一个额外包:struts2-convention-plugin-2.x.x.jar。
虽说是零配置的,但struts.xml还是少不了的,配置如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<!-- 请求参数的编码方式-->
<constant name="struts.i18n.encoding" value="UTF-8"/>
<!-- 指定被struts2处理的请求后缀类型。多个用逗号隔开-->
<constant name="struts.action.extension" value="action,do,htm"/>
<!-- 当struts.xml改动后,是否重新加载。默认值为false(生产环境下使用),开发阶段最好打开 -->
<constant name="struts.configuration.xml.reload" value="true"/>
<!-- 是否使用struts的开发模式。开发模式会有更多的调试信息。默认值为false(生产环境下使用),开发阶段最好打开 -->
<constant name="struts.devMode" value="false"/>
<!-- 设置浏览器是否缓存静态内容。默认值为true(生产环境下使用),开发阶段最好关闭 -->
<constant name="struts.serve.static.browserCache" value="false" />
<!-- 指定由spring负责action对象的创建
<constant name="struts.objectFactory" value="spring" />
-->
<!-- 是否开启动态方法调用-->
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
</struts>
action类的注解:
package com.tjcyjd.web.action;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.ExceptionMapping;
import org.apache.struts2.convention.annotation.ExceptionMappings;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import com.opensymphony.xwork2.ActionSupport;
/**
* Struts2基于注解的Action配置
*
*/
@ParentPackage("struts-default")
@Namespace("/annotation_test")
@Results( { @Result(name = "success", location = "/main.jsp"),
@Result(name = "error", location = "/error.jsp") })
@ExceptionMappings( { @ExceptionMapping(exception = "java.lange.RuntimeException", result = "error") })
public class LoginAction extends ActionSupport {
private static final long serialVersionUID = 2730268055700929183L;
private String loginName;
private String password;
@Action("login") //或者写成 @Action(value = "login")
public String login() throws Exception {
if ("yjd".equals(loginName) && "yjd".equals(password)) {
return SUCCESS;
} else {
return ERROR;
}
}
@Action(value = "add", results = { @Result(name = "success", location = "/index.jsp") })
public String add() throws Exception {
return SUCCESS;
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password= password;
}
}
这样就完成了一个基于注解的action配置。
总结常用的注解如下:
Namespace:指定命名空间。
ParentPackage:指定父包。
Result:提供了Action结果的映射。(一个结果的映射)
Results:“Result”注解列表
ResultPath:指定结果页面的基路径。
Action:指定Action的访问URL。
Actions:“Action”注解列表。
ExceptionMapping:指定异常映射。(映射一个声明异常)
ExceptionMappings:一级声明异常的数组。
InterceptorRef:拦截器引用。
InterceptorRefs:拦截器引用组。
- struts2-struts2的基本配置
- Struts2的配置
- struts2 常量的配置
- Struts2的零配置
- struts2的配置
- struts2的配置
- struts2的基本配置
- struts2的配置
- Struts2基本的配置
- Struts2的基本配置
- Struts2的入门配置
- struts2的配置
- struts2的配置
- STRUTS2的Action配置
- struts2的配置
- Struts2的配置方法
- STRUTS2的常用配置
- struts2配置的问题
- jdk和tomcat的配置
- hdoj 3400 三分
- 努力改正缺点
- 在sae配置django项目
- dijkstra--poj1797
- struts2的配置
- adb server出现异常无法调试程序
- ExtJs4.0的 数据模型刨析(Anatomy of a model)
- uva-1427 Parade (单调队列优化dp)
- 高效求幂取余 算法,复杂度 log(n)
- ubuntu12.04创建程序的快捷方式
- 用Eclipse打包jar程序直接运行(1.源码)_hanCSDN_20130817
- Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
- ZOJ1001 A + B Problem