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
-->
分享到:
相关推荐
1 入门.....................................................................................................................................4 1.1 环境搭建..................................................
回顾Struts的请求处理时序图 使用超连接的技巧 封装Formbean数据时的问题 防止表单重复提交 使用复选框的技巧 使用下拉列表框的技巧 文件上传 DispatchAction的应用 Validator框架 Struts请求处理过程的源码分析与...
回顾Struts的请求处理时序图 使用超连接的技巧 封装Formbean数据时的问题 防止表单重复提交 使用复选框的技巧 使用下拉列表框的技巧 文件上传 DispatchAction的应用 Validator框架 Struts请求处理过程的源码分析与...
书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。...
实战技巧:处理级联的数据 实战技巧:保存更新数据 在普通文本和XML文档之间权衡 何时返回普通文本 何时返回XML文档 innerHTML的应用 案例研究:MSN Space MSN Space中的Ajax 持久化机制 实体类和服务类 初始化共享...
13.1 使用Struts Bean标签保存与传输数据小实例 15 第14章 Struts Logic标签库 15 14.1 如何使用Logic标签进行基于值的条件显示 15 14.1 如何使用Logic标签进行字符串匹配 15 14.1 如何使用Logic标签来检测值是否...
Struts2 Struts2核心控制流程、Ognl、Action、Interceptor、Result、FreeMarker、Struts2标记库、Struts2扩展、Struts2应用技巧(输入验证、消息国际化、文件上传和下载、防止重复提交等)。 熟练掌握Struts2核心...
其中在Struts2部分主要讲解MVC设计思想,Struts2的处理流程及配置,Struts2常用控制器组件,以及Struts2常用标签库的使用。在Hibernate部分主要讲解O/R Mapping的设计理念,Hibernate对O/R Mapping的支持,Hibernate...
第1章 Eclipse概述及开发环境搭建 2 1.1 Eclipse概述 2 1.1.1 Eclipse的由来和发展 2 1.1.2 Eclipse的结构和平台内核 2 1.2 Eclipse开发环境的搭建 3 1.2.1 JDK的安装 4 1.2.2 JDK环境变量的设置 5 ...
8.7.1 Struts2处理表单数据 8.7.2 使用M印类型的request、session、application 8.8 疑难解惑 8.8.1 Struts Prepare And Execute Filter过滤器 8.8.2 struts.xml文件配置出错 8.9 精彩回顾 第9章 庖丁解牛 ——揭密...
本书系统全面地介绍了Java中的各项主流技术,以及基于这些技术的商业化应用程序的开发技巧,在讲解过程中以目前最为流行的开发工具MyEclipse为载体,全面系统地介绍了如何在MyEclipse中开发基于Struts、Hibernate、...
13 JDBC性能优化技巧 <br> 权限设计 1 权限系统概要 2 关于权限设计方面的问题 3 关于用户角色权限管理一点想法 4 关于权限系统的设计 <br> 缓存系统 1 ...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
设计基础 J2sdk基础、Java 面向对象基础、Java API使用、数据结构及算法基础、Java高级类特性、异常处理。 掌握Java语言规范、面向对象编程基础(OOA/OOP) J2SE平台Java程序设计 Java AWT图形界面程序开发,Swing...
9.4 批量处理数据 9.4.1 通过Session来进行批量操作 9.4.2 通过StatelessSession来进行批量操作 9.4.3 通过HQL来进行批量操作 9.4.4 直接通过JDBC API来进行批量操作 9.5 使用元数据 9.6 通过...
分别介绍了JSP基础、环境搭建和开发工具、Java语言基础、JSP语法、JSP内建对象、JavaBean技术、Servlet技术、JSP经典设计模式、数据库的安装与创建、数据库访问技术、SQL语句在JSP中的应用、高性能数据处理技术、...
ToolBar工具栏控件的使用 动态建立主菜单选项 窗口界面的...技巧 给MDI主窗体增加背景 实现图像的淡入淡出显示 多媒体播放器 播放AVI文件 根据客户端IP地址获取计算机名 实现多...