Struts的一点学习笔记

来源:互联网 发布:改身份证软件下载 编辑:程序博客网 时间:2024/04/30 02:42

     Struts


http://blog.csdn.net/EasyYoung/archive/2009/06/27/4302593.aspx
01. Struts是MVC框架,用于表示层;  Hibernate用于持久层; Spring用于管理;

02. Struts的配置:
       * 拷贝struts lib下的所有jar到WEB-INF/lib下;
       * 修改web.xml文件,配置ActionServlet;
       * 提供struts-config.xml文件;

03. ActionForm中的属性必须和表单输入域的名称一致;
    (Action, ActionForm, ActionForward, ActionMapping, struts-config.xml)

04. Struts的配置:
    <struts-config>
 <form-beans>
  <form-bean name="loginForm" type="wen.hui.struts.LoginActionForm"></form-bean>
 </form-beans>
 
 <action-mappings>
  <action path="/login"
    type="wen.hui.struts.LoginAction"
    name="loginForm"
    scope="request"
  >
  <forward name="success" path="login_success.jsp"></forward>
  <forward name="error" path="login_error.jsp"></forward>
  </action>
 </action-mappings>
    </struts-config>
    <!-- path必须以"/"开头 -->
    <!-- scope默认是session -->

05. 在启动时,会事先把struts-config.xml中的数据读取到多个Map中;

06. struts标签的配置和使用

   配置:
 * 在struts-config.xml文件中加入
 <message-resources parameter="MessageResources" />
 * 拷贝MessageResources.properties到src下
 
   使用:
 * 采用taglib指令引入
 <%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean" %>
 <%@ taglib prefix="logic" uri="http://struts.apache.org/tags-logic"%>
 * 常用标签:
 <bean:write>
 <logic:empty> 和 <logic:notEmpty>
 <logic:present> 和 <logic:notPresent>
 <logic:iterator>

07. <logic:empty/notEmpty/present/notPresent> :
    即使不存在,判断为空也成立;attr1为空, attr1不存在
    null就是为空且不存在;

08. 关于struts中的scope属性, 是先在哪个范围搜索呢????????

09. EL表达式只跟容器有关,必须是规范2.4以上的. 使用方法为:${ scope变量 }
    如果为制定scope,则从page-->application往上找;
    EL的内置对象有:pageScope, requestScope,sessionScope, applicationScope等等....
    EL表达式输出, 会自动解析html代码; 

10. jstl标签库的配置
 * 将jstl.jar和standard.jar拷贝到WEB-INF/lib下,(如果只使用El表达式,不用拷贝这两个);
 注意: jstl必须在能够支持j2ee1.4/servlet2.4/jsp2.0版本以上的容器中才能使用.
        jstl的<c:out>默认不解析html代码,要属性escapeXml=false才可以;

11. jstl设置时,默认都是page的范围

12. 条件分支控制: c:if相当于if
    <c:choose> <c:when>..</c:when> <c:otherwise>..</c:otherwise> </c:choose>:相当于if..else..
    且<c:choose>只能有一个,<c:when>可以多个, <c:otherwise>也只能有一个,且有顺序要求;
    注: 当有多个<c:when>时,相当于: if...else if...

13. jstl_core核心库中,主要有标签:
    c:out/c:set/c:remove/c:if/c:choose/c:when/c:otherwise
    c:forEach/c:forTokens/c:catch/c:import/c:url/c:param/c:redirect
    注: 参照项目struts_jstl

14. jstl_fmt标签: <fmt:formatDate>, <fmt:formatNumber>
    注: num(pattern="##,##,###.##): 123,456.79-->取作用的是最后一个,即###
    格式化数字时,"0"的位置一定有值,不足也会补零;

15. 自定义函数库:
 * 定义类和方法,(方法必须是public static的)
 * 编写自定义tld文件,并将次文件放到WEB-INF或WEB-INF的子目录中,(可以参照fn.tld来写)
 * 在jsp页面中要引入自定义函数库.

16. 动态ActionForm:
 * 动态ActionForm是为了避免标准ActionForm膨胀而设计的.
 
动态ActionForm的配置:
 *<struts-config>
  <form-beans>
   <form-bean name="dynaactionform"
type="org.apache.struts.action.DynaActionForm">
    <form-property name="username" type="java.lang.String"></form-property>
    <form-property name="age" type="java.lang.Integer"></form-property>
   </form-bean>
  </form-beans>
  <action-mappings>
   <action path="/dyna"
     type="wen.hui.struts.DynaAFAction"
     name="dynaactionform"
     scope="request"
   >
    <forward name="success" path="/dynaaf.jsp"></forward>
   </action>
  </action-mappings>
 </struts-config>

原创粉丝点击