struts2标签

struts2入门

让人想犯罪 __ 提交于 2019-11-30 18:01:26
1. struts2 Action获取表单提交数据 主要有三种方式: 1.1 使用ActionContext类 //获取actionContext对象 ActionContext context = ActionContext.getContext(); Map<String, Object> map = context.getParameters(); Set<String> keys = map.keySet(); for (String key : keys) { Object[] obj = (Object[]) map.get(key); //数组形式:因为输入项里面可能有复选框的情况 System.out.println(Arrays.toString(obj)); } View Code 1.2. 使用ServletActionContext类 HttpServletRequest request = ServletActionContext.getRequest(); String username = request.getParameter("username"); View Code 1.3. 使用接口注入方式 public class LoginAction extends ActionSupport implements

Struts2 2.0升级到2.5的配置

六眼飞鱼酱① 提交于 2019-11-30 08:44:25
最近在维护SSH(Struts2+Spring+Hibernate)框架写的老项目,项目想要由jdk 7升级到jdk 11,固Spring、Struts2等版本也要跟着升级,下面对Struts2版本由2.0升级到2.5做个总结。 1、首先替换核心jar包 之前工程中的jar包: 替换jar包后: (注意:并不是图片里所有的都要放到自己的项目中,自己的项目中用到了哪些,就替换掉哪些。删除原工程"xwork-2.0.4.jar",因为这个类库 struts升级到2.5版本已经包含在struts2-core中 了,所以一定要删除。) 2、修改web.xml <filter> <filter-name>struts2</filter-name> <!-- <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> --> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> 3、修改struts.xml配置文件 a、修改struts.xml的头部信息,把版本换成2.5 <!DOCTYPE struts PUBLIC "-//Apache

使用Struts2标签时的一些问题

☆樱花仙子☆ 提交于 2019-11-30 07:50:26
问题一:#,%{},$符号   在Struts2标签属性中经常会出现"#"或者"%{}"的符号出现,通过上面OGNL表达式基础的介绍,知道了OGNL上下文中有且仅有一个根对象。Struts2为我们定义了许多明明对象,他们分别是"ValueStack","Parameters","Session","Request", "Appliction","Attr",其中"ValueStack"被设置为上下文的根对象。访问非根对象必须加上"#"号,这就是出现"#"的原因。Struts2中的标的处理类,并不是所有都将标签的属性作为OGNL表达式来看待,有时候我们需要设置动态地值,则必须告诉标签的处理类该字符串按照OGNL表达式来处理,%{}符号的作用就是告诉标签的处理类将它包含的字符串按照OGNL表达式处理。 "$"符号用于XML文件中用于获取动态值,与%{}作用类似。 问题二:%{}符号的影响   Struts2的标签有很多,要记住哪一个标签的处理类将标签的属性作为OGNL表达式是一件很困难的事情,在不清楚处理类的处理方式时怎么办,%{}对于标签处理类来说,若处理类将属性值作为普通字符串则%{}符号包含的字符串当做OGNL表达式,若处理类将属性值作为OGNL表达式来处理,则直接忽略%{}符号。换句话说,不清楚处理方式的话,可以都使用%{}符号。 问题三:标签是如何获得数据

Struts2 的ModelDriven 二——ModelDrive

…衆ロ難τιáo~ 提交于 2019-11-30 07:50:17
继上篇 博客 介绍了值传递的几种形式,这篇博客,来说说struts2是如何实现的? 有这么两个概念和modelDriven实现有关:ValueStack,ModelDrivenInterceptor。 一、ModelDrivenInterceptor 首先先介绍以下ModelDrivenInterceptor,该拦截器处于defaultStack第九的位置。ModelDrivenInterceptor拦截器主要做的事就是调用Action的getModel()方法然后把返回的model压入值栈。 下面是该拦截器intercept方法源码: public class ModelDrivenInterceptor extends AbstractInterceptor { protected boolean refreshModelBeforeResult = false; public void setRefreshModelBeforeResult(boolean val) { this.refreshModelBeforeResult = val; } @Override public String intercept(ActionInvocation invocation) throws Exception { Object action = invocation

struts2整合json出现no result type defined for type &apos;json&apos;的解决方法

為{幸葍}努か 提交于 2019-11-30 05:27:39
struts2的json plugin可以实现struts2和json的完美结合,由于本篇主要是介绍整合过程中遇到的问题,所以编程实现的方法这里就不重复了,具体可以参看struts2的官方文档: http://struts.apache.org/2.2.1.1/docs/json-plugin.html 。 我在struts.xml中有如下action定义: <action name="product_group" class="customers.products" method="getGroups"> <result type="json"> <param name="root">groupList</param> </result> </action> 在上面的定义中,action的result的type为json,json plugin就可将action中定义为groupList的field自动转换为json格式数据,并返回给前端UI。 但在deploy后,启动tomcat时却报了 There is no result type defined for type 'json' mapped with name 'success'. Did you mean 'json'? 的错误,因为struts2找不到json这个result type的定义。解决方法有下面两种: 1.

SpringMVC 、Struts2之间的区别

我是研究僧i 提交于 2019-11-30 02:30:12
一、Spring与SpringMVC的区别: spring是一个开源框架,是为了解决企业应用程序开发,功能如下: 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 范围:任何Java应用 Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 1、轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外, Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。 2、控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器 中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。 3、面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑—— 仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。 4、容器—

Struts2+Spring3+Hibernate——整合byMaven

大憨熊 提交于 2019-11-29 19:39:22
在平时的JavaEE开发中,为了能够用最快的速度开发项目,一般都会选择使用Struts2,SpringMVC,Spring,Hibernate,MyBatis这些开源框架来开发项目,而这些框架一般不是单独使用的,经常是Struts2+Spring3+Hibernate、SpringMVC+Spring+Hibernate、SpringMVC+Spring+Mybatis这几种组合中的一种,也就是多个框架配合起来使用。今天来总结一下如何使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境。 一、建立Maven工程 第一步:    第二步:    第三步:      创建好的项目如下图所示:    第四步:      注意:这里的JDK要选择默认的,这样别人在使用的时候,如何JDk不一致的话也不会出错,如下图所示:    第五步:   创建Maven标准目录      src/main/java     src/main/resources     src/test/java     src/test/resources    第六步:   发布项目:Maven install   清除编译过的项目:Maven clean      Maven install命令执行结果如下:      OK,Maven工程创建成功! 二、搭建Spring3开发环境 2

SSH框架之Struts2第二篇

我与影子孤独终老i 提交于 2019-11-29 13:57:06
1.2 知识点 1.2.1 Struts2的Servlet的API的访问 1.2.1.1 方式一 : 通过ActionContext实现 页面: <h1>Servlet的API的访问方式一:解耦合的方式</h1> <form action="${ pageContext.request.contextPath }/requestDemo1.action" method="post"> 姓名:<input type="text" name="name"/><br/> 年龄:<input type="text" name="age"><br/> <input type="submit" value="提交"> </form> 编写Action /** * Servlet的API的访问方式一:解耦合的方式 * * 只能用于接收参数 和 操作域中的数据 * @author jt */ public class RequestDemo1Action extends ActionSupport{ @Override public String execute() throws Exception { // 接收数据: /** * 在ActionContext中提供了一些方法:操作域对象的数据 * * Map<String,Object> getParameters(); * * Map

SSH框架之Struts2第一篇

末鹿安然 提交于 2019-11-29 13:56:54
1.2 Struts2的概述 : Struts2是一个基于MVC设计模式的WEB层的框架. 1.2.1 常见web层框架 Struts1,Struts2,WebWork,SpringMVC Struts本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互. 其全新的Struts2的体系结构与Struts1的体系结构差别巨大.Struts2是以WebWork为核心,采用拦截器的机制来处理用户的请求,所以Struts2可以理解为 WebWork的更新产品. Web层的框架都有一个特点 : 遵循前端控制模型.不同的web层框架实现的前端控制器模型的技术是不一样的. Struts2 : filter SpringMVC ; servlet 导入jar包 1.asm-3.3.jar : 操作字节码 2.asm-commons-3.3.jar : 提供了基于事件的表现形式 3.asm-tree-3.3.jar : 提供基于对象的表现形式 4.commons-fileupload-1.2.2.jar : 文件上传组件,2.1.6版本以后必须加入此jar包(此jar包中包含了RequestContext类,不导入该jar会报异常) 5.commons-io-2.0.1.jar : commons项目

SSH框架之Struts2第三篇

元气小坏坏 提交于 2019-11-29 13:56:51
1.3相关知识点 : 1.3.1 OGNL的表达式 : 1.3.1.1 什么是OGNL OGNL是Object-Graph Navigation Language的编写,它是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以存取对象的 任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能.它使用相同的表达式去存取对象的属性. OGNL : 对象导航语言,是一门功能强大的表达式语言(功能比EL强大很多倍).Struts2将OGNL引入到自身,作为Struts2的表达式语言. struts2的默认表达式语言就是 : ognl 1.3.1.2 OGNL的作用 : 1 : 获取对象的方法; 2 : 获取类的静态属性; 3 : 获取类的静态方法; ognl快速入门 : <!-- ognl简单使用 --> <!-- 1 获取对象的方法(了解)--> 字符串hello的长度是: <s:property value="'hello'.length()"/><br/> <!-- 2 获取类的静态属性(了解) 要求:@类的全限定名@静态属性 --> π的值是:<s:property value="@java.lang.Math@PI"/><br/> <!-- 3 获取类的静态方法(了解) 要求: 1 @类的全限定名@静态方法 2 需要开启允许获取类的静态方法-->