Struts2学习之路(二)—— 命名空间、action使用方法简介以及path

1.struts.xml中Namespace命名空间:

namespace在package标签中设置,决定了action的访问路径,默认为“”,可以接收所有路径的action;也可以写为“/”,或者“/xxx”,又或者“/xxx/yyy",最好用模块来命名。

2.Action使用:

在struts2中由用户自定义的action来决定具体返回的视图,而具体的手段是根据返回的字符串找到相应的配置项。Action可以有三种方式实现。

(1)一个包含public String execute()方法的普通java类:

1 public class IndexAction {
2     public String execute() {
3         return "success";
4     }
5 }

(2)实现Action接口:

该接口只定义了一些常量并且只有一个execute方法。

1  public class IndexAction implements Action {
2      public String execute() {
3          return SUCCESS;
4      }
5  }

(3)继承ActionSupport(推荐):

此时并不需要方法的名称一定为execute。

1  public class IndexAction extends ActionSupport {
2      public String add() {
3          return "success";
4     }
5  }

3.path及其示例程序:

现综合以上两点知识点,并重新写一个可点击跳转页面的示例程序。

(1)WebContent目录下创建两个jsp文件:

其中一个为一开始的页面index.jsp,另一个为跳转成功后的页面next.jsp(源码略)。

注意看a标签下的路径。

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>index</title>
 8 </head>
 9 <body>
10 <a href="turn/next.action">下一步</a>
11 </body>
12 </html>

(2)修改web.xml文件

加入如下几行代码,可以在运行项目时根目录下自动访问index.jsp。

1     <welcome-file-list>
2         <welcome-file>index.jsp</welcome-file>
3     </welcome-file-list>

(3)新建Action类

1 package com.action;
2
3 import com.opensymphony.xwork2.ActionSupport;
4
5 public class NextAction extends ActionSupport{
6     public String execute(){
7         return "tonext";
8     }
9 }

(4)struts.xml

注意namespace、action name、result name。

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE struts PUBLIC
 3     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 4     "http://struts.apache.org/dtds/struts-2.3.dtd">
 5
 6 <struts>
 7
 8
 9     <constant name="struts.devMode" value="true" />
10
11
12     <package name="turn" extends="struts-default" namespace="/turn">
13         <action name="next" class="com.action.NextAction">
14             <result name="tonext">/next.jsp</result>
15         </action>
16     </package>
17
18 </struts>

(5)服务器上运行项目即可,点击index页面的下一步链接,会跳转到next.jsp页面。

(6)思考:

a.如果index.jsp和next.jsp不放在同一目录下会如何?

b.链接地址使用的是绝对路径还是相对路径?使用哪种方式好?

时间: 2024-08-29 18:35:38

Struts2学习之路(二)—— 命名空间、action使用方法简介以及path的相关文章

struts2学习笔记(二)—— 获取登录信息及计算在线人数

实现目的: 1.点击"Login"的超链接,进入登录页面 2.填写登录信息,提交表单,将用户信息保存进Session 3.显示用户名,并计算在线人数 4.点击"Logout"的超链接,在线人数减一,并使Session失效 Struts2实现: 1.配置web.xml文件 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http:/

[原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

[原创]java WEB学习笔记6:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

java痛苦学习之路[二] ---JSONObject使用

一.Strut2必须引入的包 要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包: 1.commons-lang.jar 2.commons-beanutils.jar 3.commons-collections.jar 4.commons-logging.jar 5.ezmorph.jar 6.json-lib-2.2.2-jdk15.jar 当然除了这些包,strut2基础包也得引入 struts2-core-2.1.6.jar freemarker-2.

struts2学习笔记(4)---------action中的方法调用

系统需要使用Action的不同方法来处理用户请求,这就需要让同一个Action里面包含多个控制处理逻辑. 1)动态方法调用 即DMI(dynamic method invocation),使用actionName!methodName的形式来指定想要调用的方法,如果想使用DMI,需要在struts.xml里面加入这句话: <constant name="struts.enable.DynamicMethodInvocation" value="true" /&

[原创]java WEB学习笔记54:Struts2学习之路--- 编写Struts2 的第一个程序,HelloWord,简述 package ,action,result

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

[原创]java WEB学习笔记73:Struts2 学习之路-- strut2中防止表单重复提交

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

[原创]java WEB学习笔记74:Struts2 学习之路--自定义拦截器,struts内建的拦截器

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

Struts2学习笔记整理(二)

这里是重点. Action接口 struts2 的Action可以是POJO 为了让用户开发的Action更加规范struts2提供了一个Action接口 ActionSupport基类 Struts2为Action接口提供了一个实现类 ActionSupport,定义了 表单域校验.错误信息设置和获得国际化信息相关一些方法 我们写的action可以有以下几种选择: Action 可以是 POJO 用户编写Action 可以实现Action接口    可以使用结果集常量字符串 用户编写Actio