struts初步配置

struts开发步骤:
1、导入8个JAR包

struts2-core-2.3.4.1.jar

Struts 2框架的核心类库

Xwork-core-2.3.4.1.jar

XWork类库,Struts 2的构建基础

Ognl-3.0.5.jar

Struts 2使用的一种表达式语言类库

freemarker-2.3.19.jar

Struts 2的标签模板使用类库

commons-fileupload-1.2.2.jar

Struts 2文件上传依赖包

javassist-3.11.0.GA.jar

代码生成工具包

commons-lang3-3.1.jar

Apache语言包,是java.lang包的扩展

commons-io-2.0.1.jar

Apache IO包


2、配置web.xml文件,添加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>
3、创建JSP视图页面

<h1>Hello World</h1>
<div>
	<h1>
		<!-- 显示Struts Action中message属性内容 -->
		${message}
	</h1>
</div>
<hr />
<div>
	<form action=“hello">
		请输入您的姓名:
		<input name="name" type="text" />
		<input type="submit" value="提交" />
	</form>
</div>

4、创建action的java类

public class HelloWorldAction {	
	private String name = ""; // 用户输入的姓名
	private String message = ""; // 向用户显示的信息	
	/**
	 * 当Struts 2处理用户请求时,在默认配置下调用的方法
	 */
	public String execute() {
		// 根据用户输入的姓名,进行“Hello,XXXX!”的封装
		this.setMessage("Hello,"+this.getName()+"!");
		// 处理完毕,返回“ok”字符串
		return “ok";
	}
	…	//省略setter、getter方法
}
5、配置struts.xml文件,设置视图关联

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="demo" namespace="" extends="struts-default">
	<action name="hello" method="excute" class="action.HelloAction">
		<result name="ok">/index.jsp</result>
	</action>
</package>
</struts>
Struts.xml文件详解1

package节点类似JAVA中的包,STRUTS2引用包的概念;

name属性就是包名,可以根据业务或功能分类定义不同的包,避免命名冲突;

namespace类似于命名空间,决定内部所有的ACTION访问URL的父级地址,

 如(namespace=“/demo/page”,以下访问的路径就需要加上“http://localhost:8080/项目名/demo/page/”);

extends 属性必须写上,而且值必须是“ struts-default” ,这样才能够实现 struts2 的功能

<package name="base" extends="struts-default">
</package>

action节点可以有多个,表示同个包中多个动作指向URL

action节点中的name属性是指定访问时的URL文件名,如上所示的的完整URL是:http://localhost:8080/项目名/demo/page/hello

class属性是指定当前URL所指向的action的完整类名,如果不指定值,则默认是XWORK包中的ActionSupport类;

method属性是指向action类中的执行方法,该方法可以自定义,但返回值必须是字符串,如果不指定值,默认是:excute方法。

result节点中的name属性值是指定action类中的method所指定的方法返回的字符串值,节点中的文本是指向当接收到name的值时转发的URL路径。

Action名称的搜索顺序

1.获得请求路径的URI,例如url是:http://localhost:8080/struts2/path1/path2/path3/test.action

2.首先寻找namespace为/path1/path2/path3的package,如果存在这个package,则在这个package中寻找名字

为test的action,如果不存在这个package则转步骤3;

3.寻找namespace为/path1/path2的package,如果存在这个package,则在这个package中寻找名字为test的action,如

果不存在这个package,则转步骤4;

4.寻找namespace为/path1的package,如果存在这个package,则在这个package中寻找名字为test的action,如果仍然

不存在这个package,就去默认的namaspace的package下面去找名字为test的action(默认的命名空间为空字符串"" ),

如果还是找不到,页面提示找不到action。

Action配置中的各项默认值

     <packagename=“demo" namespace="/test"extends="struts-default">
<action name="helloworld" class="action.HelloAction" method="execute">
<result name="success">/hello.jsp</result>
</action>
</package>

1>如果没有为action指定class,默认是ActionSupport。

2>如果没有为action指定method,默认执行action中的execute() 方法。

3>如果没有指定result的name属性,默认值为success。

配置 result映射

在result映射的配置中,在指定实际资源的位置时,可以使用绝对路径,也可以使用相对路径。

绝对路径以斜杠(/)开头,相对于当前的Web应用程序的上下文路径;

相对路径不以斜杠(/)开头,相对于当前执行的action的路径。

一般都建议使用绝对路径

例如:

<package name="default" extends="struts-default"namespace="/admin">
    <action name="login"class="com.ibm.LoginAction">
                 <result>success.jsp</result>
                 <result name="error">/error.jsp</result>
    </action>
 </package>

如果当前Web应用程序的上下文路径是/Shop,那么请求/Shop/admin/login.action,执行成功后,转向的页面路径为:/Shop/admin/success.jsp;执行失败后,转向的页面路径为/Shop/error.jsp.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值