1、ActionFrom中:productId为一个整数的数组,页面中要求类似这样子的显示:1,2,3,4, 最后一个不加逗号,处理技巧:
<c:forEach items="${stepForm.productId}" var="p" varStatus="vs">
${p }
<c:if test="${vs.count != fn:length(stepForm.productId)}">
,
</c:if>
</c:forEach>
2、多步收集数据时不能用ActionForm默认的数据重置的方法,处理技巧:
//购物车:不能用这个重置数据的方法
// public void reset(ActionMapping mapping, HttpServletRequest request) {
// this.name = null;
// this.productId = null;
// this.address = null;
// }
//自己写重置的方法,在开始购物前调用(Action中调用)
public void resetField() {
this.name = null;
this.productId = null;
this.address = null;
}
3、Struts1的国际化:
页面传一个参数,确定是用中文还是英文
Action处理方法:
String lang = request.getParameter("lang");
Locale currentLocale = Locale.getDefault();
if ("zh".equals(lang)) {
currentLocale = new Locale("zh", "CN");
}else if("en".equals(lang)) {
currentLocale = new Locale("en", "US");
}
//两种方法告诉Struts1 locale信息 下面这两行等效。
//如果没有告诉Struts1 locale信息,Struts1会默认取服务器的locale信息
//request.getSession().setAttribute(Globals.LOCALE_KEY, currentLocale);
this.setLocale(request, currentLocale);
return mapping.findForward("index");
Struts配置文件加上资源文件的配置:
<message-resources parameter="res/MessageResources" />
页面上取资源文件内容的方法:
1、struts标签:
<bean:message key="user.username"/>
2、JSTL标签:
<fmt:message key="user.username"/>
4、DispatchAction
/**
* 传的方法名参数不能叫:execute perform(Struts1以前叫这个方法)
*/
public class UserAction extends DispatchAction {
/**
* 不传参数的时候调用这个方法
*/
@Override
protected ActionForward unspecified(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
//调用业务逻辑操作
List userList = UserManager.getInstance().findAllUserList();
request.setAttribute("userlist", userList);
return mapping.findForward("list_success");
}
/**
* 用户添加
* 参数和execute方法参数一致, 页面传add参数
*/
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
//获取从页面表单中提交过来的值
UserActionForm uaf = (UserActionForm)form;
User user = new User();
BeanUtils.copyProperties(user, uaf);
user.setCreateDate(new Date());
//调用业务逻辑操作
UserManager.getInstance().addUser(user);
return mapping.findForward("success");
}
}
struts配置文件:
<!-- 全局的跳转 -->
<global-forwards>
<forward name="success" path="/user/usermaint.do" redirect="true"/>
</global-forwards>
<!-- parameter :调用不同的方法 页面传参,Struts自动接收然后调用对应的方法 -->
<action-mappings>
<action path="/user/usermaint"
type="com.aowin.actions.UserAction"
name="userForm"
scope="request"
parameter="command"
>
<forward name="list_success" path="/user/user_list.jsp"/>
</action>
</action-mappings>
<!--parameter参数值不能是execute或perform
http://localhost:8080/user/usermaint.do?command=.... 这里不能传execute或者perform
-->
分享到:
相关推荐
通过学习和分析这个Struts2学生选课系统,开发者可以掌握Struts2的核心概念和实践技巧,为构建更复杂的Web应用打下坚实基础。同时,这也是一个很好的实战案例,帮助开发者理解如何将理论知识应用到实际项目中。
Struts 2负责处理用户请求并展示结果,而Hibernate则专注于对象和数据库之间的数据交换。 5. **企业级应用实践**: 书中通过实际案例展示了如何利用这三个框架解决企业级应用中的常见问题,如用户认证、权限控制、...
- **Struts2_1_入门介绍**:Struts2的基本概念和架构介绍。 - **Struts2_2_Action详解**:Action组件的工作机制及其配置方式。 - **Struts2_3_配置参数详解**:深入探讨Struts2的配置选项及其优化策略。 - **...
1. Struts2和Spring的基本概念和作用。 2. 如何在Struts2中配置Spring作为Action类的依赖注入容器。 3. 使用Spring的IoC容器管理Bean和依赖关系。 4. 配置Struts2的Action和Spring的Bean之间的映射。 5. Struts2的...
1. **配置文件**:主要包括`struts.xml`,这是Struts2的核心配置文件,用于定义Action、结果类型、拦截器等。例如,为每个CRUD操作创建一个Action,配置对应的URL和结果页面。 ```xml <result name="success">/...
这个“学习Struts 2_0系列”资源旨在帮助初学者和开发者逐步掌握Struts 2的核心概念和实践技巧。下面我们将深入探讨Struts 2的关键知识点,以及如何通过实例来提升你的技能。 1. **Struts 2框架概述**:Struts 2是...
Struts的控制器组件是其核心之一,负责接收用户的请求、调用业务逻辑层处理数据,并将结果返回给视图层展示。 **2.2.4 用Struts开发Web应用** 这部分详细讲解了如何利用Struts框架来构建完整的Web应用程序,包括...
Struts2是Apache软件基金会的开源项目,它是Struts1的升级版,提供了更灵活、更强大的功能。它整合了WebWork框架的优点,如拦截器机制,使得开发者能够轻易地实现复杂的业务逻辑控制。Struts2的核心是Action类,它...
1. **Struts2 Core**:这是框架的基础,负责处理HTTP请求,执行动作类,并通过结果映射返回响应。它包含ActionSupport、Interceptor、Result等关键类和接口。 2. **插件框架**:Struts2的插件机制允许开发者轻松地...
通过深入学习和理解这个项目,开发者不仅可以掌握Hibernate和Struts2的使用技巧,还能了解到如何将这些技术应用于实际业务场景,提升自己的开发能力和项目经验。对于想要从事或已经从事电信行业IT服务的人员来说,这...
它继承了Struts1的优点,同时解决了Struts1存在的问题,提供了更强大的拦截器机制和更灵活的配置方式。在图书管理系统中,Struts2主要负责处理用户请求,调度控制流程,并与模型层交互,实现业务逻辑。 2. ...
在本资料中,你将找到关于Struts2框架的深入理解和实践技巧。 1. **基础概念** - **MVC模式**:Struts2的核心是MVC设计模式,它将业务逻辑(Model)、用户界面(View)和控制流程(Controller)分离,使代码结构...
过滤器作为Struts2的入口点,负责初始化和管理整个框架的生命周期,而拦截器则承担着处理用户请求的关键职责,它们通过对请求进行预处理、调用业务逻辑以及后处理等步骤,确保了流程的高效与有序。 构建Struts2应用...
7. 转换器:用于处理数据类型转换的问题。Struts2提供了基于OGNL和Struts的转换器,以及全局和局部转换器的声明方法。 8. AJAX:展示了如何在Struts2中实现AJAX验证功能,包括页面、Action以及验证框架的配置。 9....
1. **Model(模型)**:负责业务逻辑处理,通常由Java Beans或EJBs组成,处理数据的获取与存储。 2. **View(视图)**:负责展示用户界面,通常使用JSP页面来实现。 3. **Controller(控制器)**:协调模型和视图...
1. **集成框架**:如何将Struts、Hibernate和Velocity集成到同一个项目中,理解它们之间如何协同工作。 2. **MVC架构**:掌握如何在Struts框架下实现MVC模式,理解Action、ActionForm和Servlet的工作原理。 3. **ORM...
1. **模型(Model)**:这部分通常包含一个或多个Action类,它们负责处理用户请求并生成菜单数据。这些数据可能来自数据库或其他持久化存储。 2. **视图(View)**:Struts_Menu的视图通常由JSP页面实现,它们使用...
在该项目中,Joflash可能被用作前端展示层,提供动态交互和丰富的用户体验,而Struts2则负责处理后端逻辑,如数据访问、业务规则等。两者结合,可以实现高效的数据管理和复杂的用户界面,这对于构建现代Web应用来说...
Struts2是一个流行的Java web框架,它简化了MVC(模型-视图-控制器)架构的实现。在深入学习Struts2的过程中,了解并掌握类型...在实践中应用这些类型转换和错误处理技巧,能够加深对Struts2的理解,并提升开发能力。
9. **最佳实践与性能优化**:书中还会分享一些开发Struts应用的最佳实践,包括代码组织、性能优化技巧,以及如何处理并发和安全性问题。 10. **案例研究**:书中包含多个完整的案例,帮助读者将理论知识应用于实际...