Struts2学习笔记
转载资料 from http://www.blogjava.net/max
Question: constant name="struts.action.extension" value="action" <constant name="struts.action.extension" value="action"><constant value="action" name="struts.action.extension">问题
Answer:这个是系统从</constant>struts.properties<constant name="struts.action.extension" value="action">默认继承这个配置,所以用<s:form>的时候会自动加上.action
</s:form></constant>The URL extension to use to determine if the request is meant for a Struts action
用URL扩展名来确定是否这个请求是被用作Struts action,其实也就是设置 action的后缀,例如login.do的'do'字。
<s:form>s:form 的时候用
</s:form><constant name="struts.action.extension" value="action"><s:form>
Question:Struts2的xml的配置
Answer:Struts2默认会读取classpath下的struts-default.xml,struts-plugin.xml,struts.xml这三个文件。
struts-plugin.xml的位置struts-plugin.xml会在你下载的plugin的jar包中,如struts2-spring-plugin-2.0.6.jar。
Question:java.lang.NullPointerException 异常
Answer:应该没在web.xml有配置struts 2的filter,试下将以下列代码加到web.xml的<web-app></web-app>元素之间:
好像需要Tomcat 5.5以上,5.0会有问题,诸如NullPointerExceptio之类的
Question:Could not find or error in struts.properties
java.lang.IllegalStateException: struts.properties missing
问题解决:把struts.properties 放到classes下即可了
Question:<s:form>的action才与struts.xml中的Action名一样,
而</s:form> </s:form></constant> </constant>
中的action应为你的Action的路径的全名如/mypath/myaction.action;
Answer:Action中的属性值可以通过Javabean规范与请求是的参数绑定,
所以<s:textfield>等Form标志的name属性必须与Action属性名一致。
Question:取得Servlet API中的一些对象,如request、response或session等,应该怎么做?
Answer:com.opensymphony.xwork2.ActionContext,可以通过它的静态方法getContext()获取当前Action的上下文对象,
非IOC:
另外,org.apache.struts2.ServletActionContext作为辅助类(Helper Class),可以帮助您快捷地获得这几个对象,
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
HttpSession session = request.getSession();
IOC:
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.interceptor.SessionAware;
publicclass IoCServlet extends ActionSupport implements SessionAware, ServletRequestAware, ServletResponseAware {
private String message;
private HttpServletRequest request;
private HttpServletResponse response;
}
Question:表达式的问题,有${表达式}、带有#的表达式(如上文中的#session.msg),还有%开始的表达式,
这些好像都是取出里面的值,请问这些$、#、%开头的表达式有什么不同?各自在什么情况下使用?
Answer:OGNL中的${...}可以在定义Action的result时,传递变量,如/deleteBook.action?isbn=${isbn}。也可以在国际化时引用变量;
#用于在页面上引用ActionContext的值,也可以构造映射(Map)等,如#request.xxx;
%{...}在标签属性中引用变量,如<s:url value="Edit.action?isbn=%{isbn}">
Question:如何得到cookies
Answer:先在Action中拿到HttpServletRequest的对象(请参考《Struts 2.0的Action讲解》),然后调用request.getCookies()。
Question:
页面就可以直接获取${message},请问这默认是request级别的吗?
如果是session级别的,是不是要在取得session后
在代码中明确写入,session.setAttribute(xx.xxxx)
Answer:这些值是放在ActionContext中的,所以不是request或session等
</s:url></s:textfield>
分享到:
- 2007-08-25 09:15
- 浏览 1912
- 评论(0)
- 论坛回复 / 浏览 (0 / 2014)
- 查看更多
相关推荐
### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...
### Struts2学习笔记知识点详解 #### 一、Struts2框架的基本引入步骤 ##### 1. 导入Struts2相关Jar包 在引入Struts2框架时,首先需要将Struts2的相关Jar包导入到项目的类路径中。这些Jar包通常包括核心库以及其他...
以上就是Struts2学习笔记中涵盖的主要知识点,这些内容涵盖了从基础到进阶的应用,对于理解和掌握Struts2框架至关重要。尽管对于初学者来说可能有些复杂,但随着深入学习,你会发现Struts2的强大和实用性。
在Struts2中,学习笔记通常会涵盖以下几个关键概念: 1. **源代码查看和Javadoc**:开发者可以通过查看源代码来理解Struts2的工作原理,而Javadoc则提供了API文档,帮助理解类和方法的功能。 2. **包(Package)和...
Struts2是一个强大的Java web应用程序开发框架,它遵循Model-View-Controller (MVC)设计模式,用于构建可维护性和可扩展性高的企业级应用。本文将深入探讨Struts2的核心概念,包括Action、Result、配置文件、OGNL与...
张龙圣思园的Struts2学习笔记,无疑为Java开发者提供了一份宝贵的参考资料,它可能涵盖了Struts2的基础概念、核心组件、配置方式以及实战技巧。 首先,让我们深入了解Struts2的核心特性。Struts2是MVC(Model-View-...
本笔记将全面总结Struts2的核心概念、主要功能以及实际开发中的应用。 一、Struts2概述 Struts2是Apache软件基金会下的一个开源项目,它继承了Struts1的优点并解决了其存在的问题,如性能和灵活性。Struts2的核心是...