下载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 是一个基于 Java 语言的开源 Web 应用程序框架,由 Apache 软件基金会维护。Struts2 是 Struts1 的改进版本,提供了更加灵活和强大的功能。下面是 Struts2 的一些重要知识点: 1. Struts2 ...
以下是对Struts2知识点的详细总结: 1. **Struts2核心组件** - **FilterDispatcher**(或现在的`StrutsPrepareAndExecuteFilter`):这是Struts2的核心过滤器,它负责拦截请求,处理Action映射,并转发到相应的...
### Struts2知识点详解 #### 一、Struts2框架概览 Struts2是Apache组织推出的一个基于Java EE的Web应用框架,它遵循MVC(Model-View-Controller)设计模式,为开发者提供了构建可扩展、易于维护的Web应用程序的...
这个"Struts2知识点详解"涵盖了从基础到高级的所有核心概念,旨在帮助开发者深入理解并熟练运用Struts2。 1. **Struts2框架结构**:Struts2的核心是Action类,它是处理用户请求的中心。通过Action类,开发者可以...
### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...
以下是对压缩包中文件所涵盖的Struts2知识点的详细说明: 《Struts2标签库详解.doc》: 该文档可能详细介绍了Struts2提供的各种内置标签库,如s:form、s:textfield、s:textarea、s:submit等,这些都是在JSP页面中...
**Struts2知识点:** 1. **Action类**:实现了Struts2的Action接口,处理用户的请求,执行业务逻辑。 2. **配置文件**:`struts.xml`是Struts2的配置文件,定义了Action的映射、拦截器链等。 3. **结果类型**:...
### Struts2自学文档知识点详解 #### 一、Struts2简介 Struts2是一个用于构建企业级Java Web应用程序的开源框架。它基于MVC(Model-View-Controller)架构模式,提供了一种灵活的方式来组织代码,使得业务逻辑、...
**Struts2知识点:** Struts2是Apache软件基金会的产品,它是Struts1的升级版,提供了更灵活的架构和更好的插件支持。Struts2的核心是拦截器模型,通过拦截器链实现了业务逻辑和表现层的分离。Action类是Struts2的...
### Struts2 知识点概览 #### Struts2 概述与来历 - **Struts2**是由Apache组织维护的一款开源MVC框架,主要应用于Java Web开发领域。其定位仅作为表现层(MVC)框架,专注于处理前端用户交互逻辑。 - **Struts1**...
** jqGrid + Struts2 知识点详解** **一、jqGrid介绍** jqGrid是一款基于jQuery的开源数据网格插件,它提供了丰富的功能,包括数据分页、排序、搜索、编辑以及自定义列等。jqGrid使得在网页上展示大量数据变得简单...
struts知识点总结struts知识点总结,觉得有需要的就拿去看看吧
【FreeMarker + Struts2 知识点详解】 FreeMarker 和 Struts2 是两种常见的 Java Web 开发技术,它们在构建 MVC(Model-View-Controller)架构的应用程序中发挥着关键作用。 **FreeMarker 知识点:** 1. **...
以下是对Struts2知识点的详细解释: 一、Struts2入门及基本配置 要开始使用Struts2,首先需要配置开发环境,包括JDK、Tomcat服务器和IDE,如MyEclipse。Struts2的依赖库包括Apache Commons Logging、FreeMarker、...
Xmind文件《struts2 in action.xmind》可能是作者或读者为整理Struts2知识点创建的思维导图,可能包含框架的主要概念、重要类库、关键配置元素以及学习路径等。这样的思维导图可以帮助学习者更直观地理解和记忆...
Struts2是一个流行的Java web开发框架,主要用于构建MVC(模型-视图-控制器)架构的应用程序。它的设计目标是简化开发过程,提供强大的验证和国际化功能,以及灵活的插件架构。Struts2的核心是基于拦截器的Action...
**JavaEE + Struts2 知识点详解** JavaEE(Java Platform, Enterprise Edition)是Java平台的一个版本,主要用于开发和部署企业级应用程序。它包含了众多的组件和服务,如Servlet、JSP、EJB(Enterprise JavaBeans...
**Struts2知识点** 1. **Struts2框架概述**:Struts2是Apache软件基金会的开源项目,它基于MVC模式,提供了处理HTTP请求、控制业务逻辑和展示视图的能力。 2. **Action类与结果映射**:Struts2的核心是Action类,...