Struts1 知识积累

Struts1

Struts1.x 是MVC实现的开源框架
Struts是工作与显示层与控制层的框架,它不涉及业务层与数据层
servlet的处理路径: Struts1.x中的Servlet路径是一个经典的 "*.do"
请求转发处理绑定都在 WEN-INF/struts-config.xml 中

官方网站

官方网站:https://struts.apache.org/
文档及源码 https://archive.apache.org/dist/struts/struts-1.1/

Struts1 常用类

org.apache.struts.action.Action
org.apache.struts.actions.DispatchAction
请求转发器,继承自 org.apache.struts.action.Action
根据<action>的parameter属性转发自对应的方法,不要设置为execute,因为execute是Action中的方法,会首先执行,
例如:?method=xxx

org.apache.struts.action.ActionMapping
AcctionMapping封装的是Action的配置信息,一个Acction配置信息对应一个AcctionMapping。

org.apache.struts.action.ActionForward
在struts-config.xml配置的forward属性
<forward>可以看成是一个ActionForward对象,这个对象有两个属性name和path




org.apache.struts.action.ActionForm

org.apache.struts.action.ActionServlet

JNDI 查找Bean
InitialContext ctx = new new InitialContext();
Object bean = ctx.lookup(newLocation);

Action和ActionForm

Struts1.x中的处理程序分为两种,Action和ActionForm,Action用来处理数据请求,ActionForm用来处理数据验证
ActionMapping类可以读取struts-config.xml文件的配置
ActionForward包装要跳转的路径

缺点:
Struts1.x 一个Action对应一个ActionForm
所有要使用的Action、ActionForm都需要在struts-config中配置

优点:
开发结构严谨、提供了大量的标签(html、logic、bean)、可以直接进行vo对象的转换以及分发操作

struts-config 配置

<!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-bean可以配置多个,对应ActionForm,封装表单对象-->
      <form-bean name="orderInfoForm"
         type="继承自ActionForm的实例的全限定性类名"/>
   </form-beans>
   <global-forwards>
      <forward name="error" path="全局异常页面"/>
   </global-forwards>
   
   <!--action可以配置多个,对应Action,DispatchAction-->
   <action-mappings>
      <action name="orderInfoForm" parameter="method" path="/orderInfo"
         scope="request"
         type="某个Action的全限定性类名"
         validate="false">
          <!--forward可以配置多个,对应ActionForward-->
         <forward name="all" path="转发路径"/>
      </action>
   </action-mappings>
   
   <controller contentType="text/html;charset=UTF-8" locale="true"
      processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>
      
    <!--国际化配置-->
   <message-resources key="order" parameter="order" null="true"/>
   <!--tiles模板插件-->
   <plug-in className="org.apache.struts.tiles.TilesPlugin"/>
   
</struts-config>

struts在JSP 页面中引入标签库

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>

struts标签

logic:equal
这里要介绍的不只是logic:equal(=)标签,而是要介绍一类标签,这类标签完成比较运算,包括:

logic:equal(=)
logic:notEqual(!=)
logic:greaterEqual(>=)
logic:lessEqual(<=)
logic:graterThan(>)
logic:lessThan(<)

该类标签的用法类似,我们只介绍logic:equal标签,其它的留给您自己去完成。
logic:equal是用来判断是否相等的。如果相等,该标签体中嵌入的内容就会被处理。该标签用于以下情况:
比较由该标签的cookie属性指定的cookie的值是否与该标签的value属性值相等。
比较由该标签的header属性指定的header的值是否与该标签的value属性值相等。
比较由该标签的name属性指定的JSP Bean是否与该标签的value属性值相等(property属性不出现)或比较由该标签的name属性指定的JSP Bean中的property属性值是否与该标签的value属性值相等。
比较由该标签的parameter属性指定的参数值(request中)是否与该标签的value属性值相等。

参考资料

入门Struts1第一讲——Struts1入门就这么简单
https://blog.csdn.net/yerenyuan_pku/article/details/52652262

《Struts1.x 开发框架》
https://www.bilibili.com/video/BV16J411p7LK

posted @ 2022-07-16 15:13  crazy-zz5536  阅读(40)  评论(0编辑  收藏  举报