`
0kd07
  • 浏览: 20186 次
  • 性别: Icon_minigender_1
  • 来自: 廊坊
社区版块
存档分类
最新评论

Struts2的一些总结

    博客分类:
  • Java
阅读更多
jar包:commons-logging-1.1.jar
       freemarker-2.3.13.jar
       ognl-2.6.11.jar
       struts2-core-2.1.6.jar
       xwork-2.1.2.jar
       commons-fileupload-1.2.1.jar
       commons-io-1.3.2.jar

src目录下放入struts.xml
       <constant name="struts.devMode" value="true" />  改成true,为开发模式,自动启动
<package name="default" namespace="/" extends="struts-default">
       
        <action name="hello">
            <result>
                /Hello.jsp
            </result>
        </action>
    </package>

添加struts.xml自动提示功能:
window-Preferences-catalog-add

web.xml文件:
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

拷贝项目时注意:项目右击-Properties-MyEclipse-web-web Context-root改了


路径问题:统一使用绝对路径。(在jsp中用requestContextRoot方式来拿到webapp的路径)或者使用MyEclipse经常用的,指定basePath(在head里有个标签<base>:<base href="<%=basePath"/>)


实现一个action的最常用方式:从ActionSupport
接收参数的方法(一般用属性或者DomainModel来接受)
注意struts2的不同版本的web.xml的配置<filter-class>


动态调用:<a href="<%=context %>/user/user!add">添加用户</a>


通配符:<action name="*_*" class="com.bjsxt.struts2.action.{1}Action" method="{2}">
            <result>/{1}_{2}_success.jsp</result>
            <!-- {0}_success.jsp -->
        </action>



中文问题:最好用post提交方式
          <constant name="struts.i18n.encoding" value="GBK" /> <!-- internationalization -->


struts2的标签使用:<%@taglib uri="/struts-tags" prefix="s" %>


简单数据校验:
             public String add() {
if(name == null || !name.equals("admin")) {
this.addFieldError("name", "name is error");
this.addFieldError("name", "name is too long");//可以有多个错误
return ERROR;
}
return SUCCESS;
}


       <s:fielderror fieldName="name" theme="simple"/>

       <s:property value="errors.name[0]"/>得到下面debug中的属性的值(map中取数组的值)
       <s:debug></s:debug>得到一个debug超链接



在struts.xml中使用include标签包含别的xml文件
         <include file="login.xml"/>




指定默认的action:<default-action-ref name="index"></default-action-ref>

     <package name="default" namespace="/" extends="struts-default">
    <default-action-ref name="index"></default-action-ref>
    <action name="index">
    <result>/default.jsp</result>
    </action>
     </package>

Result类型:
           dispatcher   跳转到页面,不能跳转到action  地址显示的是action
           redirect    跳转到页面,不能跳转到action 地址显示的是页面jsp
           chain       跳转到action
           redirectAction 跳转到客户端的action


result结果集:
            <global-results>
    <result name="mainpage">/main.jsp</result>
        </global-results>
<package>包中的extends属性中可以继承包



OGNL:
                <li>访问值栈中的action的普通属性: username = <s:property value="username"/> </li>
<li>访问值栈中对象的普通属性(get set方法):<s:property value="user.age"/> | <s:property value="user['age']"/> | <s:property value="user[\"age\"]"/> | wrong: <%--<s:property value="user[age]"/>--%></li>
<li>访问值栈中对象的普通属性(get set方法): <s:property value="cat.friend.name"/></li>
<li>访问值栈中对象的普通方法:<s:property value="password.length()"/></li>
<li>访问值栈中对象的普通方法:<s:property value="cat.miaomiao()" /></li>
<li>访问值栈中action的普通方法:<s:property value="m()" /></li>
<hr />
<li>访问静态方法:<s:property value="@com.bjsxt.struts2.ognl.S@s()"/></li>//类名加方法名
                需要在struts.xml中加上一个标签:<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>
<li>访问静态属性:<s:property value="@com.bjsxt.struts2.ognl.S@STR"/></li>//类名加属性名
<li>访问Math类的静态方法:<s:property value="@@max(2,3)" /></li>只使用于这个类的方法这样用
<hr />
<li>访问普通类的构造方法:<s:property value="new com.bjsxt.struts2.ognl.User(8)"/></li>
<hr />
<li>访问List:<s:property value="users"/></li>
<li>访问List中某个元素:<s:property value="users[1]"/></li>
<li>访问List中元素某个属性的集合:<s:property value="users.{age}"/></li>//{}代表属性的集合
<li>访问List中元素某个属性的集合中的特定值:<s:property value="users.{age}[0]"/> | <s:property value="users[0].age"/></li>
<li>访问Set:<s:property value="dogs"/></li>
<li>访问Set中某个元素:<s:property value="dogs[1]"/></li>
<li>访问Map:<s:property value="dogMap"/></li>
<li>访问Map中某个元素:<s:property value="dogMap.dog101"/> | <s:property value="dogMap['dog101']"/> | <s:property value="dogMap[\"dog101\"]"/></li>
<li>访问Map中所有的key:<s:property value="dogMap.keys"/></li>
<li>访问Map中所有的value:<s:property value="dogMap.values"/></li>
<li>访问容器的大小:<s:property value="dogMap.size()"/> | <s:property value="users.size"/> </li>
<hr />
<li>投影(过滤):<s:property value="users.{?#this.age==1}[0]"/></li>
<li>投影:<s:property value="users.{^#this.age>1}.{age}"/></li>//开头
<li>投影:<s:property value="users.{$#this.age>1}.{age}"/></li>//结尾
<li>投影:<s:property value="users.{$#this.age>1}.{age} == null"/></li>
<hr />
<li>[]:<s:property value="[0].username"/></li>
分享到:
评论

相关推荐

    struts2 总结工程大全

    struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全...

    struts2总结项目总结

    1. 虽然Struts2在安全方面有一些漏洞,但通过及时更新版本和合理配置,可以有效避免如S2-005、S2-016等已知漏洞。 七、最佳实践 1. 使用ActionSupport基类,可以自动处理表单回显和错误显示。 2. 避免过度依赖OGNL...

    struts2学习总结

    struts2学习总结

    我的struts2的总结

    根据提供的文件信息,我们可以整理出关于Struts2框架的一些关键知识点。尽管原文中的信息较为零散且不完整,但还是可以从中提炼出一些有价值的内容。接下来,我们将详细探讨这些知识点。 ### Struts2简介 Struts2...

    struts2总结大全

    本总结将深入探讨Struts2的核心概念、关键功能和实用技术,以帮助开发者全面理解并熟练运用这一框架。 一、Servlet模板 在Struts2中,Servlet模板是一种处理请求和响应的方式。它通过拦截器链对请求进行处理,然后...

    struts2学习笔记总结

    本笔记将全面总结Struts2的核心概念、主要功能以及实际开发中的应用。 一、Struts2概述 Struts2是Apache软件基金会下的一个开源项目,它继承了Struts1的优点并解决了其存在的问题,如性能和灵活性。Struts2的核心是...

    Struts2知识点总结

    以下是对Struts2知识点的详细总结: 1. **Struts2核心组件** - **FilterDispatcher**(或现在的`StrutsPrepareAndExecuteFilter`):这是Struts2的核心过滤器,它负责拦截请求,处理Action映射,并转发到相应的...

    Struts2输入校验总结

    ### Struts2输入校验深度解析 #### 一、手动输入完成校验 在Struts2框架中,输入校验是确保数据完整性和安全性的重要环节。对于手动输入完成校验,Struts2提供了灵活的机制。 1. **普通处理方式**:在Action类中...

    Struts2初步使用总结

    ### Struts2初步使用总结 #### 一、Struts2原理概述 **1.1 为什么要用Struts2** 在探讨为何使用Struts2之前,我们先简要回顾一下Struts2的一些基本特点: - **模块化设计**:Struts2采用模块化的架构设计,使得...

    Struts2课堂学习总结

    以下是关于Struts2的一些核心知识点的详细说明: 1. **环境搭建**:要搭建Struts2的开发环境,首先需要配置Tomcat服务器和JDK。接着,将必要的Struts2库文件(jar包)添加到项目的类路径中,通常这包括Struts2的...

    struts2 学习重点笔记

    ### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...

    struts2学习笔记(完美总结)——转自OPEN经验库

    Struts2是一个强大的Java web应用程序开发框架,它遵循Model-View-Controller (MVC)设计模式,用于构建可维护性和可扩展性高的企业级应用。本文将深入探讨Struts2的核心概念,包括Action、Result、配置文件、OGNL与...

    Struts2+Hibernate+Spring项目小结――Struts2部分总结

    在Struts2中,当服务端验证失败时,通常会将错误信息保存在ActionContext中,并通过ActionSupport类中的addFieldError方法添加到字段上。此时,为了保留页面的初始状态,我们可以采取以下策略: 1. 使用`...

    struts2输入校验深入总结

    Struts2作为一款流行的...通过以上对Struts2输入校验的深入总结,我们可以看到Struts2为开发者提供了灵活多样的校验方式,能够满足不同场景下的需求。了解并熟练掌握这些校验机制,有助于提升应用程序的质量和安全性。

Global site tag (gtag.js) - Google Analytics