一.命名空间
namespace决定了action的访问路径,默认为"",可以接收所有路径的action
namespace可以写为/,或者/xxx,或者为/xxx/yyy,对应的action访问路径为/index.action,/xxx/index,或者/xxx/yyy/index.action
namespace最好也用模块来进行命名
二.路径问题
Struts2中的路径问题是根据action的路径而不是jsp路径确定,因为action是经过转发请求给某个jsp页面,浏览器中显示的路径并没有发生变化,相对路径是相对于当前显示的页面,所以尽量使用绝对路径而不是相对路径。
获取绝对路径的方法如下:
<%
String path = request.getContextPath();//取得根路径(即项目名)
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";//取得协议名、IP(或域名)、端口名
在head标签中加上:
<base href="<%=basePath %>"/>//加上此句之后就可以直接使用相对路径了,相对于应用程序的跟路径即可
如果没有加上这一句,可以在相对路径之前加上basePath即可
三.配置文件struts.xml中通配符的使用
看下面的action配置
<package name="actions" extends="struts-default" namespace="/actions">
<action name="Student*" class="com.bjsxt.struts2.action.StudentAction" method="{1}">
<result>/Student{1}_success.jsp</result>
</action>
<action name="*_*" class="com.bjsxt.struts2.action.{1}Action" method="{2}">
<result>/{1}_{2}_success.jsp</result>
<!-- {0}_success.jsp -->
</action>
</package>
使用通配符配置,我们能将配置量降到最低
比如我们在地址栏中输入....../Studentadd访问到的便是对应action中的add方法(method={1}),处理之后请求转发到Studentadd_success.jsp页面(/Student{1}_sucess.jsp)
我们注意到通配符可以有多个,我们可以用{}加上下标来访问,下标是从1开始的,在另外一个action中就是这样
显然我们不能输入随便一个字符串来访问某个页面,前提是这个页面是存在的,这就要求我们要实现已经写好了这些页面。我们要遵循“约定优于配置”的原则
三.如何在action中取得请求中的参数我们先看一个action
public class UserAction extends ActionSupport {
private String name;
private int age;
public String add() {
System.out.println("name=" + name);
System.out.println("age=" + age);
return SUCCESS;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
我们并没有像Struts那样通过一个HttpServletRequest对象取得请求中的参数,而是在action中通过setXXX方法来设置它的属性的值。这个调用是Struts2的核心控制器完成的,在action创建之后,如果存在请求字符串,控制器会调用action的setXXX方法来传入相应的值,如访问.../xxx/xxx?name=xiaoming&age=8,控制器分别调用setName和setAge方法
分享到:
相关推荐
Struts2_Action学习笔记、通配符{1},{2}......
01 Struts2-Action 5 一、 Struts作用: 5 二、 搭建Struts2的运行环境: 5 三、 Namespace 6 四、 标签 6 五、 Action 6 六、 路径问题的说明 8 七、 Action的动态调用方法 8 八、 Action通配符(wildcard)的配置 9 ...
struts2知识点:处理流程,基本配置,与servlet的API解耦,结果类型,通配符和动态方法的调用,类型转换,文件上传,拦截器,表单验证,国际化,OGNL表达式,UI标签,模型驱动,防止表单重复提交,项目练习知识点:...
通过示例代码演示Struts2配置中通配符的用法,代码很简单,只为说明
这是一个很有用的Struts通配符文档,如果你还在迷惑中,下载吧!
北京时间8月22日13时,Apache官方发布通告公布了Struts2中一个远程代码执行漏洞(cve-2018-11776)。该漏洞可能在两种情况下被触发,第一,当没有为底层xml配置中定义的结果设置namespace 值,并且其上层动作集配置...
struts2利用通配符调用同一个Action里面不同的方法,在struts.xml配置文件中将请求方法的不相同部分抽象成“*".
完整的Struts2_通配符映射创建步骤及代码
struts2通配符示例 正在学习struts2 对于通配符书上的示例没有,就自己做了一个,相当简陋只是纸上谈兵望大家包含。
在struts2项目开发中,使用通配符优化配置文件,可以位项目开发节约大量的时间!
本文主要介绍Struts2中通配符的使用,简单实用,希望能给大家做一个参考。
struts2通配符的使用详解
Namespace、自定义Action、路径问题、通配符、包含模块配置文件、默认Action、接受用户输入、服务器跳转、Action中访问web元素、简单数据校验、调用Action的自定义方法 5struts2国际化 ......... 6 struts2输入校验...
第一部分 Strut 2:一个全新的框架 第1章 Struts 2:现代Web框架 2 1.1 Web应用程序:快速学习 2 1.1.1 构建Web应用程序 2 1.1.2 基础技术简介 3 1.1.3 深入研究 6 1.2 Web应用程序框架 7 1.2.1 什么是框架 7 1.2.2 ...
struts2动态调用之通配符,相当于是改进的method动态调用方法,减少对同一action不同method的多次配置
NULL 博文链接:https://cdxs2.iteye.com/blog/1925234
Struts2一个Action内包含多个请求处理方法的处理,method的使用方法,struts2中的路径问题,通配符映射
一、准备工作及实例 3 1.解压struts-2.1.6-all.zip 3 2.六个基本包 3 3.初识struts2配置文件 4 ... 下面对struts2的基本执行流程作一简要说明,此流程说明可以结合官方提供的struts2结构图来看: 60
此文件可直接导入测试使用,供初学struts2的朋友借鉴,包含struts2类中获得内置对象,注入form表单参数,struts2的基本XML配置等等...
希望能帮助有需要的人!!! @ Controller(value="userAction") @ SuppressWarnings("serial") public class UserAction implements ModelDriven{ private User user = new User(); public User getModel() { ...