Struts DynaActionForm配置

2008.12.19 / 标签: , / 分类: J2EE技术

为什么要有动态ActionForm呢?若在一个大型项目中,我们的ActionForm可能会很多,而使用动态ActionForm的话,我们就不需要去写那么多类文件了,我们可以直接在配置文件中配置所需要的ActionForm。
下面我们来看看如何配置动态ActionForm。首先我们创建一个JSP页面用于提交数据和显示数据。

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>动态ActionForm测试</title>
</head>
<body>
<form action="dynaactionform.do" method="post">
用户名:<input type="text" name="userName"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
</body>
</html>

上面的代码中我们创建一个form表单,表单中有userName和password两项提交给dynaactionform.do进行处理。
接着创建我们的Action,其代码如下:

package cn.ineeke.dynamicactionform.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
public class DynaFormAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
DynaActionForm dynaForm = (DynaActionForm)form;
System.out.println(dynaForm.get("userName"));
System.out.println(dynaForm.get("password"));
return mapping.findForward("success");
}
}

上面的DynaFormAction同样也是继承自Action这个类,而在execute方法中我们将前端控制器传给我们的form强制转换成DynaActionForm(动态ActionForm)类型,并调用其get方法输出各属性值,之后进行跳转。
接下来配置struts-config.xml文件,其内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<form-beans>
<form-bean name="dynaForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="userName" type="java.lang.String"></form-property>
<form-property name="password" type="java.lang.String"></form-property>
</form-bean>
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
<action path="/dynaactionform"
type="cn.ineeke.dynamicactionform.action.DynaFormAction"
name="dynaForm"
scope="request"
>
<forward name="success" path="/dynaform.jsp"></forward>
</action>
</action-mappings>
<message-resources parameter="cn.ineeke.struts.ApplicationResources" />
</struts-config>

在struts-config.xml中我们配置了一个ActionForm和一个Action,这个ActionForm有两个属性,分别是userName和password以及其数据类型。其中org.apache.struts.action.DynaActionForm这个类是Struts所为我们提供的,我们就是使用它实现动态ActionForm的。
动态ActionForm动在何处呢?就动在form-bean的配置中。我们可以使用<form-property>动态的配置ActionForm的各个属性。

什么是Struts

2008.08.20 / 标签: ,,, / 分类: J2EE技术
Sofa

Struts是骨架、支柱的意思。Struts框架的目的也是提供一个实现MVC模式的应用程序骨架。
它出身显赫,来自Apache。Apache是一个著名的开源组织,其下有很多广泛应用的开源项目。我们一直在使用的Tomcat就是他们的一个子项目。Apache在Java世界具有举足轻重的地位。
基于Struts开发的应用由3类组建构成:控制器组件、模型组件和试图组件。
控制器组件包括ActionServlet,是Struts的核心控制器,还包括自定义的Action类,代表客户的一个操作,自定义的Action类继承自Struts提供的org.apache.struts.action.Action。
模型组件并不是由Struts提供的,一般由普通的接口和JavaBean充当,需要我们自己编码实现。
试图组件一般由JSP实现,还包括自定义的ActionForm类和Struts标签。自定义的ActionForm类用于封装request中的数据,Struts可以将request中的数据自动填充到ActionForm类中,以避免繁琐的request.getParameter()和类型转换代码。自定义的ActionForm类继承自Struts提供的org.apache.struts.action.ActionForm。Struts还提供了一系列自定义标签以简化页面的编码。
ActionForm在系统启动的时候加载struts-config.xml配置文件。struts-config.xml配置文件中包含与Action、ActionForm、页面转发等相关的配置信息。
可见,Struts只是一个应用程序的“半成品”,但已经约束了在其基础上构建应用程序的规则,并给我们的代码开发工作提供了便利。

为什么使用Struts

2008.08.19 / 标签: ,, / 分类: J2EE技术
Sofa

古语有云“没有绳子的世界是乱世”。JSP、Servlet和JavaBean技术的出现给我们构建强大的企业应用系统提供了可能。在此之上,我们还需要一个规则,一个把这些技术有效的组织起来,让系统繁而不乱的规则,这就是框架。Struts应运而生,是最早的开源框架之一,而且很快成为实际标准,是当前应用最广泛的Java Web应用开发框架。
在Struts中,可以通过struts-config.xml配置文件配置Action得访问路径,还提供了ActionForm,自动获取Request中的数据,不再需要反反复复的进行request.getParameter(),然后小心翼翼的转换类型。Struts还提供了标签库,可以方便的构建页面并获得额外的便利。作为一个成熟而完整的框架,Struts几乎处处都帮我们做好了贴心安排。

无觅相关文章插件,快速提升流量