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.链接地址使用的是绝对路径还是相对路径?使用哪种方式好?

转载于:https://www.cnblogs.com/denisechen/p/4644275.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值