`

精通struts1.2(不断更新与完善中)

阅读更多
参考资料:《Struts1.x入门与提高系列教程.pdf》感谢著作者的贡献!

DynaActionForm与常规ActionForm的区别
   1、 在配置文件中配置
    2、对属性的访问方式:与Map对象相似
    3、属性类型为标准的Java类,即用包装类型取代原生类型,如用Integer代替int
    <form-beans>
        <form-bean name="" type="">
            <form-property name="" type="" />
            ……
        </form-bean>
        ……
    </form-beans>

HTML标签库

    以Key为后缀的属性值就是属性文件的key
    <html:link forward="">
        forward指向配置文件中已经存在的forward
            <global-forwards>
                <forward name="" path="" />
            </global-forwards>
    <html:form action="" method="">
    <html:text property=""/>
    <html:radio property="" value=""/>
            当ActionForm的子类对象的某个属性有多个可枚举的选择值时,可使用,value表示当前选项被选中后,提交到服务端的值。
    <html:checkbox property="" value="">
            对应一个值
    <html:multibox property="" value="">
            property所对应的属性是数组类型
    <html:select property="">
        <html:option value=""/>
        ……
    </html:select>
    <html:sumbit value=""/>
    <html:reset value=""/>

Logic标签库

    <logic:parent name="">
        <logic:iterate id="" name="">
        </logic:iterate>
    </logic:parent>
    循环标签:<logic:iterate id="" name="" property="" indexId="" offset="" length="" scope="" />
    条件处理标签:
        Test:present,notPresent,empty,notEmpty,messagesPresent,messagesNotPresent
        比较:equal,lessThan,lessEqual,greaterThan,greaterEqual
        字符串匹配:match,notMatch
        所有的条件处理标签都有name和property属性
    流程控制标签:<logic:redirect><logic:forward>

解决ActionForm中文乱码
    有很多种,这里列举过滤器,记得在web.xml配置:
        public EncodingFilter extends Filter
        {
                public void destroy(){}
               
                public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)throws IOException,ServletException
            {
                    request.setCharacterEncoding("GBK");
                    chain.doFilter(request,response);
            }

            public void init(FilterConfig filterConfig)throws ServletException{}
        }

strut-config.xml配置文件

    action标签中的input属性:表示为通过验证后要跳转到的页面
    message-resources标签:定义程序中所使用的属性文件,parameter属性表示属性文件的路径,后缀.properties可不加,“.”可用“/”或“‘’”代替。

解决属性文件中文乱码:
    原因:Java在处理属性文件时,只能处理ISO 8859-1或UCS-2编码格式,若含有其他编码格式的字符,仍然会按ISO 8859-1或UCS-2编码格式来解释这些字符。
    方法一:用native2ascii命令
        <JDK安装目录>\bin\native2ascii
        属性文件全名  属性文件全名(注:这种方式会覆盖旧文件)
        属性文件全名 新属性文件全名(注:这种方式则不会)
    方法二:用Eclipse插件
        Properties Editor插件
        JInto插件

Bean标签库:

    优点:1、国际化,即能从属性文件中读取文本信息
                2、避免直接使用Java代码获得存储在request和session对象的内容

<%@taglib uri="" prefix=""%>
    uri属性值定位标签库的方式:直接或者用标签库的相对路径
    一、获得HTTP请求信息
       <bean:cookie id="" name="" value=""/>
        <bean:header />
        <bean:parameter />
                若忽略value属性,则name属性说对应的对象不存在时,会抛出异常,通常要加上value属性;变量保存在page范围
    二、访问Java对象
        <bean:define id="" name="" property="" scope="" toScope="" />将Java对象的属性值保存在变量中
        <bean:size id="" name="" />获得集合或数组的长度
    三、访问JSP内嵌对象和Struts配置对象
        <bean:page id="" property="" />
                property属性值为JSP内嵌对象名(application,config,request,response,session)
        <bean:struts id="" formBean=""|| mapping="" ||forward="" />
     四、访问Web资源文件及属性文件
        <bean:include id="" href="绝对路径" page="/开头的相对路径" forward="forward标签的name属性值,访问其所对应的path属性所指定的web资源文件"/>
        <bean:resource id="" name="相对路径" input="指定时id变量为inputstream类型,反之则为String类型"/>
            与<bean:include>的区别:访问Web资源时,不执行,保存原始内容到变量,而<bean:include>保存的是执行后的结果
        <bean:message  key="" bundle="" name="" property="" scope="" arg0~arg4="" />
            不指定bundle时,使用默认属性文件,其值对应<message-resources>的key值;
    五、用<bean:write>输出信息
        <bean:write name="" property="" filter="" formate="" formateKey="" bundle="" scope="" />

上传单个文件

    <html:file property="" />
    原理:通过property属性返回的FormField对象,获得InputStream对象。
    FormField是一个接口,常用方法:
        getInputStream()、getFileData()、getFieldName()、getFileSize()、destroy()
    注意:
        <html:form enctype="multipart/form-data"/>;
        struts-config.xml中的<controller maxFileSize=""/>限制上传文件大小;
        在web.xml中配置上传路径,获得上传路径的方法:
this.getServlet().getServletConfig().getInitParameter()

上传任意多个文件:
    稍微复杂了点,涉及到DOM及JavaScript技术

Validator验证框架

安装:在struts-config.xml中添加 <plug-in className="org.apache.struts.validator.ValidatorPlugIn"><set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validator1.xml"/>

注意:使用Validator框架,Form类必须继承ValidatorForm,原因:Validator继承自ActionForm,重写了validate方法,故可不用在Form类中写该方法。
<form-validation>
    <formset>
        <form name="">
            <field property="" depends="">
                <msg name="" key=""/>
                <arg name="" key="${}" position="" resource=""/>
                <var>
                    <var-name></var-name>
                    <var-value></var-value>
                </var>
            </field>
        </form>
    </formset>
</form-validation>

验证嵌套属性:可用圆点符号来访问
验证索引属性:<field indexedListProperty="" depends="">
两者配合使用:<field indexedListProperty="" property="" depends="">

全局常量:放在第一个<formset>前面
    <global>
        <constant>
            <constant-name></constant-name>
            <constant-value></constant-value>
        </constant>
    </global>
    <formset></formset>(第一个formset)

局部常量:放在formset的开始位置
    <formset>
        <constant>
            <constant-name></constant-name>
            <constant-value></constant-value>
        </constant>
        <form></form>
    </formset>

客户端验证:
    在JSP页面除了<%%><%-- --%>外的任意位置添加<html:javascipt formName=""/>,在<html:form>添加onsumbit="return validate首字母大写的Form名(this)"
*this*表示当前属性的值

国际化

客户端编码:
    对于JSP页面:<%page contentType="text/html;charset=UTF-8"%>
    对于静态页面(如html):在<head>添加<meta http-equiv="content-type" content="text/html;charset=UTF-8">
    也可在struts-config.xml添加<controller contentType="text/html;charset=UTF-8" />,那样所有通过.do或<forward>访问的页面都会继承该编码设置

多语言支持涉及到的知识点:
    java.util.Locate,一个Locate类的对象实例代表一种语言
session.setAttribute("org.apache.struts.action.LOCALE",new java.util.Locate(""))
    setLocale(request,new java.util.Locale("zh","TW");第一个参数zh表示语言,第二个表示地区,不区分大小写
    所有经过<forward>或.do的程序都会继承setLocale方法设置后的语言,除了<action>的forward和input属性所指的页面。

动态Form

属性类型:简单属性、索引属性、映射属性、嵌套属性
注意:使用动态Form,就无法使用泛型进行自动类型转换
    DynaActionForm获取属性的方法:
        public Object get(String name)//读取简单属性
        public Object get(String name,int index)//索引属性
        public Object get(String name,String key)//映射属性
        public String getString(String name)
        public String[] getStrings(String name)
DownloadAction
LocaleAction:是一个final动作类
IncludeAction
ForwardAction
EventDispatchAction



分享到:
评论

相关推荐

    struts1.2驱动包

    Struts1.2驱动包是Java Web开发中一个重要的组件,它是Apache Struts框架的特定版本,用于支持基于Model-View-Controller (MVC)设计模式的应用程序开发。Struts1.2因其稳定性和广泛的功能集而在过去备受推崇,尤其在...

    struts1.2资源整合

    在配置Struts1.2时,你需要在web.xml中设置Struts的前端控制器Filter(通常为`org.apache.struts.action.ActionServlet`),并配置相应的Action Mapping。同时,还需要在struts-config.xml文件中定义Action、Form ...

    STRUTS1.2中文文档

    在Struts1.2中,模型处理业务逻辑,视图负责用户界面,而控制器接收用户请求并协调模型和视图之间的交互。 2. **Action类**:Action类是Struts1.2的核心组件,它实现了Controller的功能。每个Action类对应一个用户...

    Struts1.2中文学习手册

    Struts1.2是Apache软件基金会的Jakarta项目下的一个开源框架,主要用于构建基于Java的Web应用程序。这个框架提供了一种组织应用结构和控制应用程序流程的方式,极大地简化了MVC(Model-View-Controller)模式的实现...

    struts1.2 + spring2.5 + hibernate3.2框架demo

    Struts1.2是一个MVC(Model-View-Controller)框架,主要负责处理用户界面与业务逻辑之间的交互;Spring2.5是一个全面的后端应用管理框架,提供了依赖注入、AOP(面向切面编程)、数据访问等服务;Hibernate3.2则是...

    struts1.2下载包

    在JSP中,Struts1.2扮演着核心控制器的角色,它将用户请求转发到相应的Action,然后Action处理业务逻辑,最终通过模型更新数据并传递结果到视图进行展示。 首先,我们来看"struts-1.2.9-bin"这个压缩包文件。这通常...

    struts、struts1.2 学习教程

    Struts1.2是该框架的一个早期版本,虽然现在已经被Struts2所取代,但在许多遗留系统中仍然广泛使用。本教程将深入探讨Struts1.2的核心概念、功能以及与Struts2的区别。 一、Struts框架基础 1. **MVC模式**:Struts...

    struts1.2 jar包

    在`struts1.2-jars`这个压缩包中,包含了Struts1.2运行所需的各个jar文件,比如`struts-core.jar`包含了框架的核心组件,`struts-tiles.jar`包含Tiles视图管理组件,`struts-taglib.jar`提供了与JSP相关的标签库,...

    struts1.2标签实例

    Struts1.2标签是Java Web开发中Struts框架的一部分,它提供了一种在JSP页面中更加便捷、可维护的方式来处理业务逻辑和控制流程。Struts1.2标签库大大简化了视图层的开发,使开发者可以避免过多地在JSP中编写Java脚本...

    struts 1.2驱动包

    Struts 1.2虽然在现代Web开发中已经被Struts 2或者Spring MVC等更新的框架取代,但它的设计理念和模式对于理解MVC架构和Web应用的开发仍然具有重要的学习价值。在学习和使用Struts 1.2时,开发者应关注其核心组件的...

    struts1.2 简单文件上传例子

    通过这个简单的Struts1.2文件上传示例,我们可以学习到如何在Java Web环境中处理文件上传,理解MVC框架如何与外部库协同工作,以及如何在实际应用中确保文件上传的安全性。这对于任何想要深入理解Struts1.2或者进行...

    struts1.2 from表单提交包含list的对象

    在Struts1.2中处理表单提交,特别是当表单数据包含列表对象时,需要理解一些核心概念和技术。这篇博客文章可能详细探讨了如何在Struts1.2中处理这类情况。 首先,让我们来了解Struts1.2中的表单提交流程。当用户在...

    struts 1.2 类库和源码

    Struts 1.2 是一个历史悠久的Java Web框架,由Apache软件基金会开发,它在Web应用开发领域曾经占据了重要的地位。这个压缩包包含了Struts 1.2版本的类库和源码,使得开发者能够方便地研究和学习这个经典框架的工作...

    Struts 1.2 API详细讲解.rar

    在Struts 1.2 API中,主要包括以下几个核心组件和接口: 1. **ActionServlet**:这是Struts框架的核心控制器,负责处理所有HTTP请求。它根据配置的ActionMapping来决定哪个Action类应该处理特定的请求。 2. **...

    基于Struts1.2的上传下载Demo

    本项目"基于Struts1.2的上传下载Demo"是针对该框架的一个实践示例,旨在帮助开发者理解和解决在Struts1.2环境中进行文件上传与下载的问题。 首先,让我们深入了解一下Struts1.2中的文件上传功能。在Struts1.2中,...

    struts1.2源码研究

    **Struts 1.2配置文件解析与管理** Struts的配置文件主要包括`struts-config.xml`,它定义了Action、Forward、Form Bean等组件。在初始化过程中,`configDigester`使用SAX解析技术解析这些配置文件,生成...

    struts1.2.jar包

    Struts1.2.jar包是基于Java的Web应用程序开发中的一个关键组件,它属于Apache Struts框架的一个版本。Struts是一个开源的MVC(Model-View-Controller)框架,用于构建可维护、可扩展和高度结构化的Web应用程序。在...

    struts1.2拦截器使用插件

    在Struts1.2中,拦截器(Interceptor)是一个非常关键的组件,它实现了AOP(面向切面编程)的概念,使得开发者可以在不修改业务逻辑代码的情况下,对请求处理流程进行增强或拦截。本文将详细介绍Struts1.2中的拦截器...

    ext+struts1.2图书管理系统

    《EXT + Struts1.2 图书管理系统:深入解析与实践》 EXT 是一个基于 JavaScript 的前端组件库,它提供了一系列强大的用户界面组件,如表格、图表、菜单、按钮等,用于构建富互联网应用程序(RIA)。EXT 提供的组件...

Global site tag (gtag.js) - Google Analytics