public class BaseAction<T> extends ActionSupport implements ModelDriven<T> { private static final long serialVersionUID = 1L; protected T model; //页面表单映射到model相当于struts1的formbean //将所有的service写入到BaseAction中 @Resource protected RoleService role…
我们为了方便实现Action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport类, 并重载(Override)此类里的String execute()方法,因为ActionSupport已经实现了Action接口, 还实现了Validateable接口,提供了数据校验功能.通过继承该ActionSupport类,可以简化Struts 2的Action开发. Action 跟 Actionsupport 的区别: 当我们在写action的时候,可以实现…
1.BaseAction package com.learning.crm.base; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDri…
Struts2实现Preparable接口 实现preparable接口,实现public void prepare() throws Exception 方法.当你访问某问action指定方法之前,最先执行prepare().这里边可以写些准备工作的代码 public void prepare() throws Exception { request = ServletActionContext.getRequest(); requestIp = getIpAddr(request); res…
一,使用Struts2标签库简化表单 在文章[基于Struts2框架实现登录案例]的基础上,通过使用Struts标签库可以简化登录页面login2.jsp <%@ page language="java" pageEncoding="utf-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <body> <cen…
在Struts2中,Action可以不实现任何特殊的接口或者继承特殊的类,仅仅是一个POJO(Plain Old Java Object,简单的Java对象)就可以:也可以实现Xwork2中的Action接口:但是由于Xwork的Action接口非常简单,为程序员提供的帮助有限,因此,在实际开发中,会更多的使用继承ActionSupport类来实现Action的方式,如下所示: import com.opensymphony.xwork2.ActionSupport; public class…
1.目录结构及导入的jar包 2.web.xml 配置 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schema…
简单来说,有很多相关的方法都加载进来,你直接调用就行了,而且在安全上和稳定性上做了很好的处理 实际上继承ActionSupport之后 就等同于实现了很多接口 Action,Validateable,ValidationAWare,TextProvider,LoacalProvider,Serializable 可以提供数据校验 序列化 国际化等功能 当然 如果不继承ActionSupport 而是自己实现上述接口 效果也是一样的.继承ActionSupport只是为了一次性实现多个接口方便而已…
struts2中的action可以继承ActionSupport,也可以不继承ActionSupport.不继承ActionSupport的情况只需要有一个方法,返回String,即可,记住,在继承ActionSupport的情况下,必须有无参构造函数.继承ActionSupport的好处在于:1.能够使用struts预设的返回字符串,如SUCCESS,INPUT等等.2.重写方法,更方便的实现验证.国际化等等功能.3.与struts的功能结合紧密,方便开发.…
Action类为何要继承ActionSupport   理论上Struts 2.0的Action无须实现任何接口或继承任何类型,但是,我们为了方便实现Action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport类,并重载(Override)此类里的String execute()方法.当然我们也可以在写action的时候实现Action接口. Action接口有: public static final java.lang.String SUCCE…
struts2中的action可以继承ActionSupport,也可以不继承ActionSupport.不继承ActionSupport的情况只需要有一个方法,返回String,即可,记住,在继承ActionSupport的情况下,必须有无参构造函数.继承ActionSupport的好处在于:1.能够使用struts预设的返回字符串,如SUCCESS,INPUT等等.2.重写方法,更方便的实现验证.国际化等等功能.3.与struts的功能结合紧密,方便开发. Action接口有: public…
com.opensymphony.xwork2.ActionSupport类是默认的Action类,如果某个Action节点没有配置class属性,则ActionSupport即为待执行的Action类,而execute方法即为要默认执行的方法. <action name="testActionSupport"> <result>/testActionSupport.jsp</result> </action> 等同于 <actio…
参考:http://zhanghua.1199.blog.163.com/blog/static/46449807201111139501298/ 做项目的时候,由于要用到在Struts2的Action类中利用Spring的AOP来实现记录操作日志, 在Action里面的方法中加上自定义annotation来实现记录操作功能, 运行的时候页面提示NoSuchMethodException when Aspec, 网上说是Action继承了ActionSupport导致的, 后来在一个英文网站上找…
使用Eclipse 进行项目开发,在实现类中的方法前面如果添加@Override就提示“Multiple markers at this line”的错误,问题描述如下 应该是JDK版本的问题, 右击项目--Properties--Java compiler 可参考:http://blog.csdn.net/mazhaojuan/article/details/28931375…
http://developer.51cto.com/art/200907/134757.htm 表面现象: 在WebWork中,当一个Action中既没有重写ActionSupport中的validate方法,也没有相关的validata.xml文件,并且action中并没有INPUT的出口,但是最终LOG里面却告诉我们这个Action返回INPUT了.这到底是怎么一回事呢? 了解下代码: WebWork中,如果有添加workflow这个interceptor,那么ActionA chain到…
理论上Struts 2.0的Action无须实现任何接口或继承任何类型,但是,我们为了方便实现Action,大多数情况下都会继承 com.opensymphony.xwork2.ActionSupport类,并重载(Override)此类里的String execute()方法. 由JavaDoc可知,ActionSupport类实现了接口. com.opensymphony.xwork2.Action. com.opensymphony.xwork2.LoaleProvider. com.op…
这个项目是用Struts2做的,我这里单独写了一个BaseAction,用来存放所有的功能模块的Action的公共部分, 刚开始的做法是这个BaseAction只会继承ActionSupport 并不会实现ModelDriven<T>,而是让每一个具体的Action(比如DepartmentAction)去继承ModelDriven<T>, 但是为了实现代码不重复写,进行了改进.这里直接让BaseAction继承ModelDriven<T>,然后让所有的功能模块的Act…
开发环境 开发工具:Eclipse 数据库:MySQL server:Tomcat Struts2 请求原理流程图 构建一个 web maven project,在pom.xml引入struts2的jar包 <!-- struts2 --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <versio…
第一步:首先写个上传文件的页面(简单的一个form表单) <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>文件上传</title> </head> <body> <h1>文件上传</h1> <br><br>…
=============编码规范,所有文健,所有页面,所有数据库的数据表都采用UTF-8编码格式,避免乱码:===========开发环境:jdk1.7+tomcat8.0+mysql5.7+eclipse Mars.2 Release (4.5.2) 1:创建一个动态web项目,名称如Oa: 2:创建一个Oa的数据库,并且创建一个新用户只可以操作Oa这个数据库: ----创建数据库 create database Oa default character set utf8; -----创建用…
package com.xxxxxxx.bos.web.action.common; import java.io.IOException; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.struts2.Servlet…
这几天正在复习三大框架的知识,特意把写出来,如有错误,希望大家多指教! 代码地址:https://git.coding.net/puchenglin/SSHDemo.git 1. 引入jar包 Struts所需jar包: l   ../struts2/apps/路径下的 l   struts2-spring-plugin-2.3.12  用于整合spring Hibernate所需jar包: l hibernate3.jar l ../hibernate/lib/required/*.jar l…
 分类: Web(2)  版权声明:本文为博主原创文章,未经博主允许不得转载. 最近在做一个SpringMVC+spring+MyBatis的项目,突然想起以前自己要搭建一个Struts2+Spring+IBatis的框架,但是没成功,正好看见培训时候老师给的千里之行的开源项目.于是将这个项目提供的SQL加入到了自己的数据库中(所以数据和项目名用的是qlzx),打算以后做练习的时候用这个数据库.那么接下来问题来了(不要说某翔或者不约,不是那个问题):我有了数据库和数据,想要搭建一个网站,该怎么做…
一.了解Struts2 拦截器[Interceptor] 拦截器的工作原理如图  拦截器是由每一个action请求(request)都包装在一系列的拦截器的内部,通过redirectAction再一次发送请求. 拦截器可以在Action执行直线做相似的操作也可以在Action执行直后做回收操作. 我们可以让每一个Action既可以将操作转交给下面的拦截器,Action也可以直接退出操作返回客户既定的画面. 接下来我们该如何定义一个拦截器: 自定义一个拦截器如下: 1.实现Interceptor接…
struts2 + Spring +hibernate Hibernate工作原理及为什么要用?   原理:   1.读取并解析配置文件   2.读取并解析映射信息,创建SessionFactory   3.打开Sesssion   4.创建事务Transation  5.持久化操作   6.提交事务   7.关闭Session   8.关闭SesstionFactory    为什么要用:   1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码.    2. Hib…
在JSP中服务器端保存数据的作用域通常有request.session.application,它们对应的Servlet API分别是HttpServletRquerst.HttpSession.ServletContext.同样在Struts2的控制器中也需要访问这些作用域. Struts2提供了一个ActionContext类,该类被称为Action上下文或者Action环境,Action可以通过该类访问最常用的ServletAPI. ServletAPI有多种访问方式: 1. Servle…
先贴个本帖的地址,免得其它网站被爬去了struts2教程 官方系列四:Action  即 http://www.cnblogs.com/linghaoxinpian/p/6905521.html 下载本章节代码 介绍 写一个struts2 Action涉及到以下几部分: 1.映射一个action到一个指定的类 2.映射一个result到指定视图 3.在action中编写控制器逻辑 在先前的教程中,我们了解到如何映射一个URL到一个Action,并且指定调用的方法. struts2 Action类…
public class BaseAction<T> extends ActionSupport implements ModelDriven<T>{ // 1. 封装数据 private T t; public T getModel(){ return t; } // 1.1 实例化 t public BaseAction(){ try{ // 得到当前运行类的 Class Class c = this.getClass(); ParameterizedType ptype =…
一.树状菜单加载 这是js的一个典型应用,使用zTree插件能够完成该项任务http://www.ztree.me/v3/main.php 我是用的版本:zTree2.5 使用方法: <%@ page language="java" isELIgnored="false" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="c…
第一步:创建测试表Elec_Text: create table Elec_Text(textID varchar(50) not null primary key,textName varchar(50),textDate datetime,textRemark varchar(500) ); 第二步:创建项目,导入jar包 第三步:持久层 (1)在com.kangjie.elec.domain中创建ElecText.java ElecText.java public class ElecTe…