??xml version="1.0" encoding="utf-8" standalone="yes"?>91精品国模一区二区三区,国产大学生校花援交在线播放,www.欧美色图http://www.aygfsteel.com/blovesaga/category/11875.html在希腊帕?dng)纳斯山南坡?有一个驰名世界的戴尔波伊托所,在它的入口处的巨石上赫然锈刻着q样几个大字: 认识你自?zh-cnTue, 27 Feb 2007 12:33:41 GMTTue, 27 Feb 2007 12:33:41 GMT60Strutsl节谈http://www.aygfsteel.com/blovesaga/articles/55088.htmlblovesagablovesagaMon, 26 Jun 2006 03:01:00 GMThttp://www.aygfsteel.com/blovesaga/articles/55088.htmlhttp://www.aygfsteel.com/blovesaga/comments/55088.htmlhttp://www.aygfsteel.com/blovesaga/articles/55088.html#Feedback0http://www.aygfsteel.com/blovesaga/comments/commentRss/55088.htmlhttp://www.aygfsteel.com/blovesaga/services/trackbacks/55088.html动作映射

q个时候,你可能会(x)问自?“当控制器接受到一个请求的时候,它如何知道调用哪个Action实例?”控制器要通过查看h消息q用一l动作映?action mapping)来做出决定。动作映是Struts配置信息(配置一个特D的XML文g中)(j)的一部分。这个配|信息会(x)在启动时加蝲到内存中Q让Struts框架得以在运行时加以利用。每个action元素在内存中都被表示为org.apache.struts.action.ActionMappingcȝ实例。ActionMapping对象包含一个path属性,用来与外部请求的URI部分匚w。如?
<action
    path="/login"
    type="com.oreilly.struts.banking.action.LoginAction"
    scope="request"
    name="loginForm"
    validate="true"
    input="/login.jsp"
    <forward name="Success" path="/action/getaccountinformation" redirect="true"/>
    <forward name="Failure" path="/login.jsp" redirect="true"/>
</action>
q里的登录动作映把路径"/login"映射C(jin)com.oreilly.struts.banking.LoginActionq个ActioncR无ZӞ当控制器接受C个URI路径中包?/login"字符串的hӞ׃(x)调用LoginAction实例的execute()Ҏ(gu)。Struts框架q会(x)使用映射来指出“动?完成后要让用戯{向哪个资源?/p>

 

使用Struts ActionForm

Struts框架的ActionForm对象可用来在用户和业务层之间传输客户的输入数据。Struts框架?x)自动从h中收集输入数据,再将q些数据交给一个用表单bean(form bean)的Action对象Q接着表单再交l业务层。ؓ(f)?jin)把表示层和业务层分d来,你不应该直接把ActionForm对象交给业务层,而是应该使用由ActionForm对象得到的数据创建适当的DTO。下面的步骤说明?jin)Struts框架如何处理每个h相应的ActionForm对象:
 
  1.(g)查该动作的相应讄Q查看是否已l有某个ActionForm得到配置?br />  2.如果对应q个动作配置?jin)某个ActionFormQ则使用action元素中的name属性来查找表单bean的配|信息?br />  3.查看是否已经创徏?jin)一个ActionForm的一个实例?br />  4.如果在适当的作用域内已l存在一个ActionForm实例Q而且q个实例的类型正是这个请求所需要的cdQ则重用q个实例?br />  5.否则Q创建所需ActionForm的一个新实例Qƈ存储在适当的作用域中(由action元素的scope属性设|??br />  6.调用ActionForm实例的reset()Ҏ(gu)?br />  7.反复处理h参数Q如果参数名在ActionForm实例中具有对应的讄Ҏ(gu)(setter method),׃ؓ(f)它填上该h参数的倹{?br />  8.最后,如果validate属性的D|ؓ(f)true,则调用ActionForm实例的validate()Ҏ(gu)Qƈq回所出现的Q何误?br />
对Q何HTML面而言Q如果表单数据是以POSTҎ(gu)传输的,应该用ActionForm。必要时Q相同的ActionForm可以同时l多个页面用,只要HTML字段能和ActionForm对象的属?property)匚w可以了(jin)?br />Struts框架所提供的ActionFormcdC(jin)多个Ҏ(gu)Q但到目前ؓ(f)止,最重要的两个方法就是reset()和validate():
    public void reset(ActionMapping mapping,HttpServletRequest request);
    public ActionErrors validate(ActionMapping mapping,HttpServletRequest request);
在Struts ActionFormcMQ这两个Ҏ(gu)的默认实现是不完成Q何的逻辑。你必须在自qActionFormcM覆盖q两个方法。控制器以请求中的值来填写ActionForm实例之前Q会(x)先调用reset()Ҏ(gu)。reset()Ҏ(gu)l了(jin)ActionForm一个机?x),可将其属性设|ؓ(f)原来默认的状态。这一炚w帔R要,因ؓ(f)表单bean实例可能?x)由多个h׃n或者由好几个不同的U程所存取。不q,如果你是让好几页׃n一个ActionForm实例Q可?br />不会(x)Ld现reset()Ҏ(gu)Q这样一来只要这个实例还在,属性的值就不会(x)被重新设|。另一U做法就是实C自己的resetFields()Ҏ(gu)Q在成功更新业务之后Q就从这个ActioncL调用此方法。当h中所携带的值已l插入到ActionFrom实例之后Q控制器回调用validate()Ҏ(gu)。ActionForm应该对输入数据完成必要的验证工作Q然后向控制器返回所(g)到的Q何错误。业务逻辑验证应该在业务对象中而不是在ActionForm中来完成。在ActionForm中所q行的验证工作,只是表示的验证而已。一旦写好ActionFormcdQ你必须通知Struts应用E序有这些ActionForm存在Q告诉Struts应用E序哪个动作映射应该使用哪个ActionForm。这是在配置文g中设|的。第一步是Z的应用程序在配置文g中的form-beansD里配置所有的ActionForm。看下面的一个例?

 <form-beans>
    <form-bean
       name="loginForm"
       type="com.oreilly.struts.banking.form.LoginForm"/>
    <form-bean
       name="accountInformationForm"
       type="org.apache.struts.action.DynaActionForm">
       <form-property name="accounts" type="java.util.ArrayList"/>
    </form-bean>
 </form-beans>
每个表单bean的name属性必都是独一无二的,而且其type属性必d义一个Javac(扩展?jin)Struts ActionFormc)(j)的完全限定名。下一步是在一个或多个action元素中用在form-benasD里的某个form-bean名。如下:(x)

  <action
    path="/login"
    type='com.oreilly.struts.banking.action.LoginAction"
    scope="request"
    name="loginForm"
    validate="true"
    input="/login.jsp">
    <forward name="Success" path="/action/getaccountinformation" redirect="ture>
    <forward name="Failure" path="/login.jsp" redirect="true"/>
  </action>
注意Q登录动作映的name正好和前面form-beansD里某个name属性相匚w?/p>

 


 



blovesaga 2006-06-26 11:01 发表评论
]]>
Java Web FrameworklD http://www.aygfsteel.com/blovesaga/articles/53564.htmlblovesagablovesagaSun, 18 Jun 2006 02:37:00 GMThttp://www.aygfsteel.com/blovesaga/articles/53564.htmlhttp://www.aygfsteel.com/blovesaga/comments/53564.htmlhttp://www.aygfsteel.com/blovesaga/articles/53564.html#Feedback0http://www.aygfsteel.com/blovesaga/comments/commentRss/53564.htmlhttp://www.aygfsteel.com/blovesaga/services/trackbacks/53564.html阅读全文

blovesaga 2006-06-18 10:37 发表评论
]]>
Struts入门学习(fn)?-配置 http://www.aygfsteel.com/blovesaga/articles/50396.htmlblovesagablovesagaSun, 04 Jun 2006 22:02:00 GMThttp://www.aygfsteel.com/blovesaga/articles/50396.htmlhttp://www.aygfsteel.com/blovesaga/comments/50396.htmlhttp://www.aygfsteel.com/blovesaga/articles/50396.html#Feedback0http://www.aygfsteel.com/blovesaga/comments/commentRss/50396.htmlhttp://www.aygfsteel.com/blovesaga/services/trackbacks/50396.html    作ؓ(f)一个程序员你必d?jin)解STRUTS,在之前配|是一个问题,万丈高楼从地?基础是保?所以我们先得让它RUNhQ然后再谈驾御它^_^!
    配置Struts,必须要以下的环境和工?
 
  . JDK(Java Development Kit)
    可以?http://java.sun.com/j2se 下蝲最新版?br />  . Servlet容器
    q个容器必须支持Servlet规范2.2版或后箋的版?已经JavaServer Pages规范1.1或者更?br />  . XML解析?br />    支持JAXP 1.1版或者后l版.Xerces解析器正好符合此要求,可以?http://xml.apache.org/xerces-j 下蝲
  . Xalan XSLT处理?br />    1.2 版或者后l版?注意,2.0 版存在一些问?q个处理器可以把XML文g转换成HTML文档.q个处理器包含Xerces解析?
    可以?http://xml.apache.org/xalan-j/index.html 下蝲Xalan .
  . JDBC 2.0以上的package .

    具体的配|过E?
 
  1. 新徏一个WEB应用,如在Tomcat\webapps目录下新建立一?Dalston目录.
  2. Struts中的 lib/commons-*.jar ?lib/struts.jar 文gcopy到应用中的Dalston\WEB-INF\lib目录?然后Struts中全部的标签库描q文?br />     (lib/struts-*.tld) copy到Dalston\WEB-INF\tld目录?.
  3. 在Dalston\WEB-INF下新建立一个web.xml文g,在文件加入以下的内容:
  -------------------------------------------------------------------------
  web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
  "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">

<web-app>
  <display-name>Struts Blank Application</display-name>
 
  <!-- Standard Action Servlet Configuration (with debugging) -->
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
     <init-param>
      <param-name>application</param-name>
      <param-value>ApplicationResources</param-value>
    </init-param>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>2</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>


  <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>


  <!-- The Usual Welcome File List -->
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>


  <!-- Struts Tag Library Descriptors -->
  <taglib>
    <taglib-uri>/struts-bean</taglib-uri>
    <taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>/struts-html</taglib-uri>
    <taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>/struts-logic</taglib-uri>
    <taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>/struts-nested</taglib-uri>
    <taglib-location>/WEB-INF/tld/struts-nested.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>/struts-tiles</taglib-uri>
    <taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location>
  </taglib>
 
  <taglib>
    <taglib-uri>/struts-template</taglib-uri>
    <taglib-location>/WEB-INF/tld/struts-template.tld</taglib-location>
  </taglib>
   <taglib>
    <taglib-uri>/jstl/c</taglib-uri>
    <taglib-location>/WEB-INF/tld/c.tld</taglib-location>
  </taglib>
 

</web-app>
=================================================================================================
  4. 修改完web.xml?在WEB-INF目录中新Z个struts-config.xml文g.struts-config.xml内容如下:
struts-config.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

  <struts-config>
      <form-beans>
      </form-beans>
      <global-forwards>
      </global-forwards>
      <action-mapping>
      </action-mapping>
  </struts-config>
======================================================================================================
做完以上的工?我们可以测试一下配|是否正了(jin).
在WEB-INF 目录下徏立一个ApplicationResource.properties 文g,增加一个属?
index.title=Struts Tutorial
我们写一个测试JSP文g---test.jsp,它的代码如下:
test.jsp

<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib uri="/struts-logic" prefix="logic" %>
<%@ taglib uri="/struts-bean" prefix="bean" %>
<%@ taglib uri="/struts-html" prefix="html" %>
<html:html locale="true">
<head>
<html:base/>
<title>
<bean:message key="index.title"/>
</title>
</head>
<body>
试我刚配置的Struts!
</body>
</html:html>
重新启动WEB服务?在浏览器里输入测试文件所在地址:
http://127.0.0.1:8080/Dalston/test.jsp
如果配置正确那么在IE里就?x)输?
试我刚配置的Struts!
如果q样Q那么你成功?jin),你就可以l箋高阶修炼?^_^


blovesaga 2006-06-05 06:02 发表评论
]]>
վ֩ģ壺 Ҫ| ϸ| | ¬| ľ˹| ʡ| | | н| | | ǰ| ຣʡ| üɽ| | ؼ| ұ| Զ| İ| | ݸ| | | | ɽ| ˳| ˳| ˺| | Դ| ϴ| | | ԰| | Ǩ| | Ļ| ɽ| | |