本文记录使用 Struts2出现的问题,和解决方案。
IBATIS iterate的问题。
通过一组学生的id,批量设置他们的isleave为1。
使用iterate的两种方案
1.使用IN关键字
<update id="setStudentLeac.update1" parameterClass="java.util.List">
update tb_student set isleave=1 where student_id in
(<iterate conjunction=",">#[]#</iterate>)
</update>
2.循环update执行
<update id="setStudentLeac.update" parameterClass="java.util.List">
<iterate conjunction="">
update tb_student set isleave=1 where student_id =#[]#;
</iterate>
</update>
第2种方案一直会报错。 但是提示的sql根本看不出哪里错了
作为悬案吧。暂时用1方法
多个struts2配置文件。使用公共拦截器或者全局结果
如果拦截器I写在A.XML文件中。我想要在B.XML中使用该拦截器I。B的package需要是继承A
例子:
主配置文件 struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<constant name="struts.ui.theme" value="simple" />
<constant name="struts.multipart.maxSize" value="10485760" /> <!-- 文件上传为10M -->
<package name="main" extends="struts-default" >
<interceptors>
<interceptor name="refuseGet" class="com.growup.tool.NoGetInterceptor">
</interceptor>
</interceptors>
<global-results>
<result name="index">/html/index.jsp</result>
<result name="Exception" type="redirect">/ExceptionAction.action</result>
<result name="exception" >/html/Exception.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="Exception" exception="java.lang.Exception"/>
</global-exception-mappings>
<!--登录请求done -->
<action name="actionLogin" class="com.growup.action.LoginAction" method="checkLogin">
<result name="success" type="redirect">/html/teacherLogin.jsp</result>
<result name="error">/html/index.jsp</result>
</action>
</package>
<!-- Add packages here -->
<constant name="struts.ui.theme" value="simple" />
<constant name="struts.ui.templateDir" value="template" />
<constant name="struts.ui.templateSuffix" value="ftl" />
<include file="struts-manage.xml"></include>
</struts>
从配置文件 struts-manage.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<include file="struts.xml"></include>
<package name="manage" extends="main" >
<!-- 只给添加学生 done -->
<action name="addstudentAction" class="com.growup.action.SetBasicInfoAction" method="onlySetStudents">
<interceptor-ref name="refuseGet"></interceptor-ref>
<interceptor-ref name="defaultStack"/>
</action>
</package>
</struts>
可以看到struts-manage.xml中可以使用refuseGet这个拦截器。只是include是不行的。本来以为这样会有冲突。继承的action和主文件中的action冲突。不过没有发生。
分享到:
相关推荐
拦截器是Struts2框架的核心组件之一,用于实现特定的功能,如输入验证、日志记录等。Struts2提供了一系列默认的拦截器,并允许用户自定义拦截器。 **3.3 ActionMapper** `ActionMapper`负责将HTTP请求映射到对应的...
6. **其他依赖的jar包**:Struts2运行还需要一些其他的库,如freemarker或velocity用于模板引擎,javassist用于动态类生成,log4j或slf4j用于日志记录等。 引入Struts2的jar包有多种方式: - **Eclipse/IDEA等集成...
Struts2使用过滤器(Filter)作为前端控制器,相比于Struts1使用servlet作为前端控制器更加优雅。 - **适用范围**:Struts2广泛应用于企业级Java Web项目的开发中,特别是那些需要处理大量用户交互和数据展示的应用。 ...
5. **表达式语言(EL)和OGNL**:Struts2使用OGNL作为默认的表达式语言,用于在视图层与模型层之间传递数据。 6. **Struts2的生命周期**:包括初始化、请求处理、响应生成等阶段。 7. **Action的注解配置**:...
5. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为默认表达式语言,用于在Action和视图之间传递数据。通过OGNL,可以在JSP页面中直接访问Action中的属性,或者在Action中动态设置模型数据。 6. ...
这个“Struts2接口文档”是开发者的重要参考资料,提供了关于Struts2框架内各个组件、类库以及接口的详细说明,帮助开发者深入理解框架的内部工作原理并有效地使用其功能。 Struts2的核心组件包括Action、Result、...
在开发租房网站的过程中,学生将学习如何创建Action类、配置struts.xml、设计数据库模型、编写DAO和Service层代码、实现页面交互以及使用Struts 2提供的各种功能来优化用户体验。这将帮助他们掌握Web应用开发的基本...
3. **拦截器(Interceptors)**:拦截器是Struts2的一大特色,它们按照预定义的顺序在Action调用前后执行,可以实现如日志记录、权限验证、性能监控等功能。常见的拦截器有`params`(处理请求参数)、`validation`...
Struts2的拦截器是处理请求的过滤器,可以用于日志记录、权限检查、数据校验等。它们通过`struts-default.xml`和自定义配置文件定义,并按顺序执行。 7. **国际化和主题**: Struts2支持应用的多语言支持和UI主题...
拦截器是Struts2的一个强大特性,可以在Action执行前后进行额外的操作,比如日志记录、权限验证、数据校验等。通过在`struts.xml`中配置拦截器栈,可以定制化Action的执行流程。 **6. OGNL(Object-Graph ...
- 在web.xml中配置过滤器(Filter),通常使用`FilterDispatcher`作为入口点,它是Struts2的核心组件之一。 - 这个过滤器会捕获所有进入Web应用的HTTP请求,并将它们传递给Struts2框架处理。 - 配置过程中需要注意...
- Struts2的拦截器是其一大特色,它们允许在Action执行前后插入自定义逻辑,如日志记录、权限验证、数据校验等。用户可以自由组合拦截器栈,以实现不同的业务需求。 4. **结果类型(Result Types)** - 结果类型...
Struts2和Tomcat是Java ...对于初学者,可以从提供的"Struts2入门教程.pdf"开始,逐步了解和掌握Struts2框架的使用;而对于Tomcat的深入理解,可以阅读"Tomcat工作原理祥解.pdf",这将有助于优化应用的性能和部署策略。
Struts2Demo2是一个基于Apache Struts2框架的示例应用,它展示了如何在实际开发中使用Struts2来构建动态Web项目。Struts2是一个强大的MVC(Model-View-Controller)框架,用于简化Java Web应用程序的开发过程。在这...
Struts2使用它进行动态代理,确保新版本的Javassist支持Struts2的新特性和修复。 2. **配置文件的调整**:Struts2的配置文件(如struts.xml)可能会因版本升级而需要调整。例如,新的版本可能会引入新的拦截器或...
6. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为默认的表达式语言,用于在Action与视图之间传递数据。开发者可以通过OGNL表达式访问Action属性,以及在JSP中动态地显示和修改数据。 7. **...
综上所述,Struts2是一个功能强大且易于使用的Java Web框架,它继承了WebWork的优秀特性,并在此基础上进行了创新和发展。对于希望构建高质量Web应用的开发者来说,深入学习Struts2将是一笔宝贵的财富。
11. `ognl.jar`:Object-Graph Navigation Language,Struts2使用OGNL作为表达式语言,用于传递值和调用方法。 12. `freemarker.jar`:FreeMarker模板引擎,用于生成动态HTML页面。 13. `slf4j-api.jar` 和 `slf4j-...
5. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为默认表达式语言,用于在Action和视图之间传递数据。 6. **拦截器**:拦截器是Struts2的核心组件,用于处理请求、验证输入、事务管理、日志...
- Struts2 引入了拦截器机制,这是一个重要的增强,允许开发者定义一系列预定义和自定义的处理逻辑,可以用于事务管理、权限控制、日志记录等多种用途,增强了框架的可扩展性和可维护性。 总的来说,Struts2 相比 ...