- 浏览: 1327415 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (896)
- spring4 (14)
- hibernate3 (26)
- spring2 (35)
- struts2 (55)
- struts1 (15)
- 设计模式 (15)
- java (172)
- mybatis3 (11)
- sql (17)
- mysql (13)
- jbpm (10)
- J2EE (45)
- tools (29)
- js (83)
- 数据结构 (13)
- Html (26)
- web (22)
- flex (33)
- Oracle (57)
- linux (49)
- 算法 (6)
- 其它 (12)
- easyui (1)
- bootstrap (13)
- xml (2)
- tomcat (1)
- redis (10)
- activemq (2)
- webservice (11)
- maven (2)
- springboot (1)
- ubuntu (1)
- python (14)
- rocketmq (1)
- springcloud (10)
- opencv (1)
最新评论
-
mike_eclipse:
Hashtable是线程不安全的吗?好像是线程安全的吧?
多线程之集合类 -
July01:
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
lodop打印控件 -
xingcxb:
经过测试,假的,依旧会出现中文乱码!!!!store方法里面采 ...
java 读写Properties文件,不会出现中文乱码 -
tiger20111989:
...
Spring注解方式管理事务 -
zw7534313:
...
js 文字上下滚动 无间断循环显示
1.Caused by: com.opensymphony.xwork2.inject.ContainerImpl$MissingDependencyException: No mapping found for dependency [type=java.lang.String, name='actionPackages'] in public void org.apache.struts2.config.ClasspathPackageProvider.setActionPackages(java.lang.String).??
需要配置<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>org.apache.struts2.showcase.action</param-value> //action所在的包
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> //和spring集成
2.applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName"> //不用再写property
<bean id="storage" class="org.apache.struts2.showcase.application.MemoryStorage" singleton="true"/>
<bean id="testDataProvider" class="org.apache.struts2.showcase.application.TestDataProvider" singleton="true" lazy-init="false"/>
<bean id="skillDao" class="org.apache.struts2.showcase.dao.SkillDao"/>
<bean id="employeeDao" class="org.apache.struts2.showcase.dao.EmployeeDao"/>
</beans>
3.action:
public class SkillAction extends AbstractCRUDAction implements Preparable {
private static final Logger log = Logger.getLogger(SkillAction.class);
private String skillName; 和<s:param name="skillName" value="name"/>有关
protected SkillDao skillDao;
private Skill currentSkill;
// <result type="redirect">edit.action?skillName=${currentSkill.name}</result>
<s:textfield label="%{getText('skill.name')}" name="currentSkill.name"/>
public String getSkillName() {
return skillName;
}
public void setSkillName(String skillName) {
this.skillName = skillName;
}
protected Dao getDao() {
System.out.println("skillDAO: "+skillDao);
return skillDao;
}
public void setSkillDao(SkillDao skillDao) {
if (log.isDebugEnabled()) {
log.debug("SkillAction - [setSkillDao]: skillDao injected.");
}
this.skillDao = skillDao;
}
public Skill getCurrentSkill() {
return currentSkill;
}
public void setCurrentSkill(Skill currentSkill) {
this.currentSkill = currentSkill;
}
/**
* This method is called to allow the action to prepare itself.
*
* @throws Exception thrown if a system level exception occurs.
*/
public void prepare() throws Exception {
Skill preFetched = (Skill) fetch(getSkillName(), getCurrentSkill());
if (preFetched != null) {
setCurrentSkill(preFetched);
}
}
public String save() throws Exception {
if (getCurrentSkill() != null) {
setSkillName((String) skillDao.merge(getCurrentSkill()));
}
return SUCCESS;
}
}
4.interceptor:
5.struts.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="struts-default">
<interceptors>
<interceptor-stack name="crudStack">
<interceptor-ref name="checkbox" />
<interceptor-ref name="params" />
<interceptor-ref name="staticParams" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
</package>
<package name="skill" extends="default" namespace="/skill">
<default-interceptor-ref name="crudStack"/>
<action name="list" class="org.apache.struts2.showcase.action.SkillAction" method="list">
<result>/empmanager/listSkills.jsp</result>
<interceptor-ref name="basicStack"/>
</action>
<action name="edit" class="org.apache.struts2.showcase.action.SkillAction">
<result>/empmanager/editSkill.jsp</result>
<interceptor-ref name="params" />
<interceptor-ref name="basicStack"/>
</action>
<action name="save" class="org.apache.struts2.showcase.action.SkillAction" method="save">
<result name="input">/empmanager/editSkill.jsp</result>
<result type="redirect">edit.action?skillName=${currentSkill.name}</result>
</action>
<action name="delete" class="org.apache.struts2.showcase.action.SkillAction" method="delete">
<result name="error">/empmanager/editSkill.jsp</result>
<result type="redirect">edit.action?skillName=${currentSkill.name}</result>
</action>
</package>
</struts>
6.page:
<s:iterator value="availableItems"> //list
<tr>
<td><a href="<s:url action="edit"><s:param name="skillName" value="name"/></s:url>"><s:property value="name"/></a></td>
<td><s:property value="description"/></td>
</tr>
</s:iterator>
7.Preparable:
import com.opensymphony.xwork2.Preparable;
public void prepare() throws Exception {
System.out.println("preparabe():............");
Word w=null;
if(id!=null){
w=daoService.get(id);
}
if(w!=null){
this.setCurrentWord(w);
}
}
每调用一次action,都会在执行execute()方法前调用preparabe();
8.new 和 edit用一个页面:
<s:if test="currentWord!=null">
<s:set name="submitType" value="'update'"/>
<s:text id="title" name="item.edit"><s:param><s:text name="word"/></s:param></s:text>
</s:if>
<s:else>
<s:set name="submitType" value="'create'"/>
<s:text var="title" name="item.create"><s:param><s:text name="word"/></s:param></s:text>
</s:else>
s:form action="save">
<s:textfield label="%{getText('word.id.label')}" name="currentWord.id"/>
<s:textfield label="%{getText('word.content.label')}" name="currentWord.content"/>
<%--s:submit name="%{#submitType}" value="%{getText('save')}" /--%>
<s:submit value="%{getText('save')}" />
</s:form>
- struts2-crud.rar (56.4 KB)
- 下载次数: 52
- web-struts2_crud-me.zip (1.1 MB)
- 下载次数: 52
发表评论
-
struts2 对异常的处理
2015-12-11 19:57 748struts2 对异常的处理 使用自定义类处理异常 ... -
struts/spring/mybatis的整合
2015-10-31 14:19 1078struts/spring/mybatis的整合 1 ... -
struts2 异常处理
2015-06-30 16:10 403异常处理后,能够提供友好的用户界面,而不是一些错误的 ... -
struts2+sring4+mybatis3集成框架(二)
2015-06-30 13:48 7501.jsp自定义标签:分页标签 ... -
struts2 中的OGNL
2015-06-28 08:13 771OGNL是Object-Graph Na ... -
struts2 参数绑定(Jsp获取参数的方法)
2015-06-28 07:31 1652在JSP页面与ACTION之 ... -
struts2 参数绑定(Action接收参数的方法)
2015-06-28 07:26 1244Struts2中Action接收参数的方法主要有以下三 ... -
struts2+sring4+mybatis3集成框架(一)
2015-06-26 08:08 1068struts2.3.24、spring4. ... -
struts2中 # % $ 的区别和用法
2010-09-29 09:15 1117Struts2 中OGNL表达式的用 ... -
struts2 %{#foobar['foo1']} -- %{}的作用
2010-08-31 14:19 1335“%”符号的用途是在标志的属性为字符串类型时,计算OGNL表达 ... -
js util
2010-08-02 16:18 1121http://www.ilovejs.net/archives ... -
Struts2集成spring:
2010-08-02 16:08 1225Struts2集成spring: Spring插件通过覆盖S ... -
Struts2提供了多种方式来访问request,session,application
2010-07-30 10:29 1285Struts2提供了两种方式来访问request,sessio ... -
Struts2 标签
2010-07-29 16:33 1271Struts2通用标签: 数据标签: 1. Pro ... -
strtuts2 Request
2010-07-27 10:21 11231.ServletActionContext.getReque ... -
使用Struts2 的result 传递参数
2010-07-27 09:26 15021.当使用type=“redirectAction” 或typ ... -
Struts2 报错
2010-07-23 10:59 1345http://wenku.baidu.com/view/e0f ... -
FreeMarker
2010-07-22 16:48 2055与jsp在HTML页面中嵌入java脚本代码不同,FreeMa ... -
Struts2类型转换
2010-07-21 15:34 1747Struts2类型转换: 在基于HTTP协议的Web应用 ... -
OGNL表达式
2010-07-21 10:56 1581OGNL表达式: 1. 不要忽略了用于界定整个常量字符串的 ...
相关推荐
Struts2 CRUD是一个基于Apache Struts2框架实现的创建、读取、更新和删除(Create, Read, Update, Delete)操作的示例项目。这个项目主要用于演示如何在Web应用程序中使用Struts2来处理基本的数据操作。Struts2是...
Struts2 CRUD-2 是一个基于Struts2框架实现的简单数据操作示例,主要涵盖了创建(Create)、读取(Read)、更新(Update)和删除(Delete)这四个数据库操作的基本功能。Struts2是一个非常流行的Java Web开发框架,...
Struts2 CRUD是一个典型的Java Web开发中的概念,它涉及到Model-View-Controller(MVC)设计模式的应用,以及使用Struts2框架实现对单一数据库表的创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete)功能。...
struts2 CRUD example
Struts2CRUD是一个基于Apache Struts2框架实现的创建、读取、更新和删除(CRUD)操作的示例项目。这个项目旨在帮助开发者理解如何在实际应用中利用Struts2来处理基本的数据操作。Struts2是一个流行的Java Web框架,...
Struts2 CRUD(创建、读取、更新、删除)是一个基于Java EE平台的常用操作,用于处理数据库中的数据。在给定的“struts2crud”项目中,开发者分享了自己的实现,而非依赖官方的帮助文档,这表明这是一个独立完成的...
本教程“Struts2 CRUD(增加、读取、更新、删除)例子”提供了一个基础但全面的实践指南,帮助初学者理解如何在Struts2框架下实现数据操作的基本功能。 首先,CRUD是创建(Create)、读取(Read)、更新(Update)和...
本DEMO主要展示了如何使用Struts2实现CRUD操作,即创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete)数据的基本功能。下面我们将详细探讨Struts2框架以及如何在Java web应用中实现CRUD操作。 首先,了解...
在 Struts2 中实现 CRUD 操作通常涉及控制器(Action)、模型(Model)和视图(View)的交互。 在这个代码片段中,我们看到一个 Struts2 Action 类,它包含了对数据库进行 CRUD 操作的方法。首先,类中声明了数据库...
Struts2是Java Web开发中一个非常流行的MVC框架,它极大地简化了Web应用程序的构建,特别是对于实现CRUD(创建、读取、更新、删除)操作。在本篇文章中,我们将深入探讨如何使用Java Struts2框架来完成这些基本的...
struts的crud sample demo(struts-crud.war) 可以直接解压查看代码,或者放到工程中运行
Struts2实现CRUD(增 删 改 查) Maven版; eclipse直接导入使用; 教程地址:http://blog.csdn.net/sky_zhangfan/article/details/1896842
在基于Struts的CRUD(创建、读取、更新和删除)操作中,我们将探讨如何利用Struts来处理基本的数据操作,以及如何与其他流行框架如Spring和MySQL数据库相结合。 **1. Struts框架** Struts是Apache软件基金会的一个...
在这个项目中,我们专注于使用Struts2来实现一个数据表的CRUD操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)。 首先,我们需要配置Struts2的核心框架。在`struts.xml`配置文件中,定义...
在"Struts2整合Spring Hibernate的CRUD实例"中,我们将探讨如何将这三个框架无缝集成,实现对数据库的数据创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作。下面将详细介绍这个实例中的关键知识...
在本教程中,我们将探讨如何利用Struts实现CRUD(创建、读取、更新和删除)操作,这是一些基本但至关重要的数据库交互功能。 首先,理解Struts框架的核心组件至关重要。ActionServlet是Struts的入口点,它处理HTTP...