`

struts2的知识点

阅读更多
下载struts2的文档

foward 和 redirected的区别

一次request只有一个值栈,就是说chain,共享值栈

jsp页面得到参数
<s:property value="#parameters.t"/>
${param.t }



在工作目录中添加源码
在工作目录中添加doc(方便在Myeclipse中直接看它的API文档)

2.1.6中这个有BUG,显示中文的时候是乱码,只能在2.1.7中修复
<constant name="struts.i18n.encoding" value="UTF-8" />

让struts2处于开发模式,这样,改了action也可以不用重启服务即可使用
在struts.xml中添加<constant name="struts2.devMode" value="true"/>

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

默认namespace为"" 如果加了"/aaa",那么对应的action也得写成 aaa/front.action


struts1中,action只有一个
struts2中,action每次访问都会new一个新的

当struts.xml中某一个action没有对应的class时,action默认的action为actionSupport中的execute()

struts2中的路径问题是根据action的路径而不是jsp路径来确定的,所以劲量不要使用相对路径
虽然可以使用redirect方式解决,但redirect方式并非必要
解决方法非常简单,统一使用相对路径(在jsp页面中用request.getContextRoot方式得到webapp路径)

action有3种接受参数的方法

在action中定义jsp页面中的参数名,然后get()set()

直接用对象传参(user.name=aaa&user.age=8)



<s:debug/>
包括两个contents

value stack contents  值栈,action的属性会放入此中,包括errors
stack contents 栈上下文





=============================================================================

在struts2中,如果用struts.xml来配置action,那么一般使用动态方法调用(DMI)和通配符匹配
调用action的时候,用action!method来调

struts.xml:
<package name="default" extends="struts-default" namespace="/">
		<action name="test1action" class="com.test.action.Test1Action">
			<result>
				/hello.jsp
			</result>
		</action>		
	</package>

action:

package com.test.action;

import com.opensymphony.xwork2.ActionSupport;
import com.test.entity.UserVO;

public class Test1Action extends ActionSupport {
	
	/**
	 * serialVersionUID
	 */
	private static final long serialVersionUID = 7515077332560688530L;

	private UserVO userVO;
	
	public UserVO getUserVO() {
		return userVO;
	}

	public void setUserVO(UserVO userVO) {
		this.userVO = userVO;
	}



	public String test1() {
		if (userVO.getName() != null && !userVO.getName().equals("admin")) {
			this.addFieldError("name", "name is error");
		}
		System.out.println(userVO.getName() + "  " + userVO.getAge());
		return SUCCESS;
	}
}



jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <!-- <base href="<%=basePath%>"> -->
    
    <title>My JSP 'index.jsp' starting page</title>
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
  </head>
  
  <body>
    This is my JSP page. <br>
    hello
    <form action="test1action!test1" method="post">
    	<input type="text" name="userVO.name">
    	<br/>
    	<input type="text" name="userVO.age">
    	<br/>
    	<input type="submit" value="提交">
    </form>
    ${userVO.name } + ${userVO.age }
    <br/>
    <s:property value="#request.userVO.name"/>
    <br/>
    <s:property value="#attr.userVO.name"/>
    <br/>
    ============================================
    <br/>
    <s:property value="errors.name[0]" />
  </body>
</html>


可以用el表达式来取值${},也可以用<s:property value="#request.***" />

<s:property value="#session.***" />
<s:property value="#application.***" />
当然,也可以使用<s:property value="#attr.***" />但不建议使用,因为最好精确知道值在哪个域中。

我个人使用el表达式,因为get()set()后,在jsp页面上即可以得到request的值



======================================================================================



默认action(如果找不到某个action时,走此action):
<default-action-ref name="aaa"></default-action-ref>
<action name="aaa">
	<result>/aaa.jsp</result>
</action>


当使用chain时,如果一个action在另外一个包中,那么使用参数,把另一个包的名放进去即可(看文档)


分享到:
评论

相关推荐

    Struts2知识点

    Struts2 知识点 Struts2 是一个基于 Java 语言的开源 Web 应用程序框架,由 Apache 软件基金会维护。Struts2 是 Struts1 的改进版本,提供了更加灵活和强大的功能。下面是 Struts2 的一些重要知识点: 1. Struts2 ...

    Struts2知识点总结

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

    struts2 知识点

    ### Struts2知识点详解 #### 一、Struts2框架概览 Struts2是Apache组织推出的一个基于Java EE的Web应用框架,它遵循MVC(Model-View-Controller)设计模式,为开发者提供了构建可扩展、易于维护的Web应用程序的...

    Struts2知识点详解

    这个"Struts2知识点详解"涵盖了从基础到高级的所有核心概念,旨在帮助开发者深入理解并熟练运用Struts2。 1. **Struts2框架结构**:Struts2的核心是Action类,它是处理用户请求的中心。通过Action类,开发者可以...

    struts2 学习重点笔记

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

    struts2相关书籍

    以下是对压缩包中文件所涵盖的Struts2知识点的详细说明: 《Struts2标签库详解.doc》: 该文档可能详细介绍了Struts2提供的各种内置标签库,如s:form、s:textfield、s:textarea、s:submit等,这些都是在JSP页面中...

    ibatis+struts2

    **Struts2知识点:** 1. **Action类**:实现了Struts2的Action接口,处理用户的请求,执行业务逻辑。 2. **配置文件**:`struts.xml`是Struts2的配置文件,定义了Action的映射、拦截器链等。 3. **结果类型**:...

    struts2自学文档

    ### Struts2自学文档知识点详解 #### 一、Struts2简介 Struts2是一个用于构建企业级Java Web应用程序的开源框架。它基于MVC(Model-View-Controller)架构模式,提供了一种灵活的方式来组织代码,使得业务逻辑、...

    struts2的jar包

    **Struts2知识点:** Struts2是Apache软件基金会的产品,它是Struts1的升级版,提供了更灵活的架构和更好的插件支持。Struts2的核心是拦截器模型,通过拦截器链实现了业务逻辑和表现层的分离。Action类是Struts2的...

    Struts2(一)

    ### Struts2 知识点概览 #### Struts2 概述与来历 - **Struts2**是由Apache组织维护的一款开源MVC框架,主要应用于Java Web开发领域。其定位仅作为表现层(MVC)框架,专注于处理前端用户交互逻辑。 - **Struts1**...

    jqgrid+struts2

    ** jqGrid + Struts2 知识点详解** **一、jqGrid介绍** jqGrid是一款基于jQuery的开源数据网格插件,它提供了丰富的功能,包括数据分页、排序、搜索、编辑以及自定义列等。jqGrid使得在网页上展示大量数据变得简单...

    struts知识点总结

    struts知识点总结struts知识点总结,觉得有需要的就拿去看看吧

    freemaker+struts2

    【FreeMarker + Struts2 知识点详解】 FreeMarker 和 Struts2 是两种常见的 Java Web 开发技术,它们在构建 MVC(Model-View-Controller)架构的应用程序中发挥着关键作用。 **FreeMarker 知识点:** 1. **...

    struts2开发文档

    以下是对Struts2知识点的详细解释: 一、Struts2入门及基本配置 要开始使用Struts2,首先需要配置开发环境,包括JDK、Tomcat服务器和IDE,如MyEclipse。Struts2的依赖库包括Apache Commons Logging、FreeMarker、...

    struts2 in action

    Xmind文件《struts2 in action.xmind》可能是作者或读者为整理Struts2知识点创建的思维导图,可能包含框架的主要概念、重要类库、关键配置元素以及学习路径等。这样的思维导图可以帮助学习者更直观地理解和记忆...

    struts2重要知识点原理

    Struts2是一个流行的Java web开发框架,主要用于构建MVC(模型-视图-控制器)架构的应用程序。它的设计目标是简化开发过程,提供强大的验证和国际化功能,以及灵活的插件架构。Struts2的核心是基于拦截器的Action...

    JAVAEE +struts2

    **JavaEE + Struts2 知识点详解** JavaEE(Java Platform, Enterprise Edition)是Java平台的一个版本,主要用于开发和部署企业级应用程序。它包含了众多的组件和服务,如Servlet、JSP、EJB(Enterprise JavaBeans...

    highcharts struts demo

    **Struts2知识点** 1. **Struts2框架概述**:Struts2是Apache软件基金会的开源项目,它基于MVC模式,提供了处理HTTP请求、控制业务逻辑和展示视图的能力。 2. **Action类与结果映射**:Struts2的核心是Action类,...

Global site tag (gtag.js) - Google Analytics