摘要:
所有的MVC框架,都需要负责解析HTTP请求参数,并将请求参数传给控制器组件。由于HTTP请求参数都是字符串类型,但是java是强类型的语言。,因此MVC框架必须将这些字符串参数转换成相应的数据类型。 Struts2提供了非常强大的类型转换机制。Struts2的类型转换可以基于ONGL表达式,只要把HTTP参数命名为合法的ONGL表达式,就可以充分利用Struts2的类型转换机制。 1、Struts2内建的类型转换器 Struts2可以完成大多数常用的类型转换。这些常用的类型转换时通过Struts2内建的类型转换器完成的。如下: 2、基于ONGL的类型转换 借助于ONGL,Struts2允许. 阅读全文
摘要:
当实现Action处理类后,我们就可以在struts.xml文件中配置该Action了。配置Action的目的就是让Struts2知道哪个Action处理哪个请求。也就是完成用户请求和Action之间的对应关系。 在Action映射中可以指定resulttypes、异常处理器及拦截器,但是,只有Action的name属性是必需指定的,该属性石引用该包的唯一标识。其他属性也可以在package范围内进行定义,供该package下配置的所有Action引用 1、包和命名空间 Struts2使用包来组织、管理Action。定义Action通过使用<package.../>下的<ac 阅读全文
摘要:
Struts2提供了大量的标签来开发表现层页面。这些标签的大部分,都可以在各种表现层技术中使用。 Struts2将所有标签分为以下三类: UI(用户界面):主要用于生成HTML元素的标签 非UI标签:主要用于数据访问、逻辑控制等的标签 Ajax标签:用于Ajax支持的标签 1、控制标签 1)、if/elseif/else:都是用来进行分支控制的 语法格式为: 1 <s: if test="表达式"> 2 标签体 3 </s:if> 4 <s: elseif test="表达式"> 5 标签体 6 </s:else 阅读全文
摘要:
对于MVC框架而言。我们希望:当Action处理用户请求时。如果出现了异常1,则系统就会转入视图资源1,在该视图资源上输入服务器提示;如果出现了异常2,则系统会转入子图资源2,在该视图资源上输入服务器提示;。。。。。 为了满足上述要求,我们可以采用以下的处理方法: 1 Public class XxxxAction{ 2 Public String execute(){ 3 try{ 4 ……. 5 } 6 catch(异常1 e1){ 7 return 结果1; 8 }... 阅读全文
摘要:
首先来看看浅拷贝和深拷贝的定义: 浅拷贝:使用一个已知实例对新创建实例的成员变量逐个赋值,这个方式被称为浅拷贝。 深拷贝:当一个类的拷贝构造方法,不仅要复制对象的所有非引用成员变量值,还要为引用类型的成员变量创建新的实例,并且初始化为形式参数实例值。这个方式称为深拷贝 也就是说浅拷贝只复制一个对象,传递引用,不能复制实例。而深拷贝对对象内部的引用均复制,它是创建一个新的实例,并且复制实例。 对于浅拷贝当对象的成员变量是基本数据类型时,两个对象的成员变量已有存储空间,赋值运算传递值,所以浅拷贝能够复制实例。但是当对象的成员变量是引用数据类型时,就不能实现对象的复制了。 存在一个对象Person. 阅读全文
摘要:
在我们配置Action时,发现struts.xml中的<action…/>的绝大部分都相同。这时我们可以通过使用struts2提供的通配符映射机制来处理这个问题。我们在配置<action…./>时,允许在指定name属性时使用模式字符串(即用“*”来代替一个或多个任意字符),接下来就可以再class、method属性和<result…/>中使用{N}的形式来代表前面第几个*所代表是字符。 1、当我们在Action的name属性中使用通配符后,可以用一个<action../>元素代替多个逻辑Action。1 <action name=&quo 阅读全文
摘要:
Convention插件的主要特点是“约定优于配置”。 Action的搜索和映射约定 为了能够使用Convention插件,必须在Struts 2 应用中安装Convention插件,即将Struts2-convention-plugin.jar文件复制到Struts 2应用的WEB-INF/lib路径下。 对于convention插件而言,他会对以下两种java类的Action处理: 1、 所有实现了com.opensymphony.xwork2.Action的java类 2、 所有类名以Action结尾的java类 Struts 2的convention插件还允许设置如下三个常量常量说明. 阅读全文
摘要:
PreResultListener是要给监听器接口,他可以在Action完成控制处理之后,系统转入实际的物理视图之间被回调。 Struts 2 可以由ActionInvocation的addPreResultListener()方法来完成。 Struts 2 可以由Action和拦截器添加PreResultListener监听器。当为Action添加了改监听器,该监听器就可以再应用转入到实际物理视图之前回调该监听器的beforeResult()方法;当为拦截器添加监听器后,该监听器会对该拦截器所拦截的所有action都起作用。如: 1 public class LoginRegistActi. 阅读全文
摘要:
Action访问Servlet API Struts2中的Action并没有和任何Servlet API耦合,这样框架更具灵活性,更易测试。对于Web应用的控制器而言,不访问ServletAPI是几乎不可能的。Web应用中通常需要访问的ServletAPI就是HttpServletRequest、HttpSession和ServletContext,这三个接口分别代表JSP中内置对象中的request、session、application。 Struts 2提供了一个ActionContext类,Struts 2的action可以通过该类来访问Servlet API ActionConte. 阅读全文
摘要:
struts 2提供了包含处理多个逻辑的Action,从而允许一个Action内包含多个控制处理逻辑。例如一个页面中存在多个按钮,用户通过不同的按钮提交同一个表单时,可以使用Action的不同的方法来处理用户的请求。如下图页面 页面中有两个提交按钮,但分别提交给Action的不同方法处理,“登陆”按钮使用登陆逻辑来处理请求,而“注册”按钮则使用注册逻辑来处理请求。此时,可以采用动态方法调用来处理 这种请求。动态方法调用是指表单元素的action并不是直接等于某个Action的名字,而是以下面形式来指定表单的action属性action属性为actionName!methodName形式 其中. 阅读全文
摘要:
新建一个struts 2项目,命名为struts2按照下面的xml来配置Action1 <package name="hello" namespace="/action" extends="struts-default">2 <action name="helloworld" class="com.struts.action.HelloWorldAction" method="execute">3 <result name="succe 阅读全文
摘要:
一、将struts 2的lib文件夹下地commons-fileupload.jar、commons-io.jar、freemarker.jar、javassist.jar、ognl.jar、struts2-core.jar和xwork-core.jar必需类复制到web应用的WEB-INF/lib路径下。如果需要在web应用中使用struts 2的更多特性,则需要将相应的JAR文件复制到web应用的WEB-INF/lib路径下。二、编辑Web应用的web.xml配置文件,配置Struts 2 的核心Filter。在web.xml中定义核心Filter是来拦截用户请求。由于Web应用是基于请. 阅读全文
摘要:
Servlet过滤器简介 Servlet过滤器是通过一个配置文件来灵活声明的模块化的可重用组建。Servlet过滤器截请求和响应,以便查看、提取或操作客服端和服务器之间交换的数据。 Servlet过滤器实际上就是一个标准的java类,这个类通过实现Filter接口获得过滤器的功能。它在jsp容器启动的时候通过web.xml配置文件被系统加载。 Servlet过滤器在接收到用户请求的时候被调用,当服务器接收到用户的请求的时候,依次调用配置好的过滤器,完成后将执行请求所要求的servlet,而servlet执行后的响应,则先通过配置好的过滤器后再发送给用户。 过滤器的用途: 1、用户认证和授... 阅读全文