1、配置Struts2的开发模式
<constantname="struts.devMode"value="true"/>
2、Struts的action
具体视图的返回可以由用户自己定义的Action来决定
具体的手段是根据返回的字符串找到对应的配置项,来决定视图的内容
具体Action的实现可以是一个普通的java类,里面有publicString execute方法即可
或者实现Action接口
不过最常用的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法
3、路径问题
struts2中的路径问题是根据action的路径而不是jsp路径来确定,所以尽量不要使用相对路径。
虽然可以用redirect方式解决,但redirect方式并非必要。
解决办法非常简单,统一使用绝对路径。(在jsp中用request.getContextRoot方式来拿到webapp的路径)
或者使用myeclipse经常用的,指定basePath
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<basehref="<%=basePath%>"/>
4、ActionMethod_DMI_动态方法调用
Action执行的时候并不一定要执行execute方法
可以在配置文件中配置Action的时候用method=来指定执行哪个方法
也可以在url地址中动态指定(动态方法调用DMI)(推荐)
<a href="<%=context %>/user/userAdd">添加用户</a>
<a href="<%=context %>/user/user!add">添加用户</a>
前者会产生太多的action,所以不推荐使用
<packagename="user"extends="struts-default"namespace="/user">
<actionname="userAdd"class="com.bjsxt.struts2.action.UserAction"method="add">
<result>/user_add_success.jsp</result>
</action>
<!--推荐方式使用DMI访问时使用user!add方式
-->
<actionname="user"class="com.bjsxt.struts2.action.UserAction">
<result>/user_add_success.jsp</result>
</action>
</package>
5、ActionWildcard_通配符配置
使用通配符,将配置量降到最低<br/>
<ahref="<%=context %>/actions/Studentadd">添加学生</a>
<ahref="<%=context %>/actions/Studentdelete">删除学生</a>
不过,一定要遵守"约定优于配置"的原则
<ahref="<%=context %>/actions/Teacher_add">添加老师</a>
<ahref="<%=context %>/actions/Teacher_delete">删除老师</a>
<ahref="<%=context %>/actions/Course_add">添加课程</a>
<ahref="<%=context %>/actions/Course_delete">删除课程</a>
<!--路径匹配时,会先匹配精确的,带*号为同一级别,按先后顺序
-->
<packagename="actions"extends="struts-default"namespace="/actions">
<actionname="Student*"class="com.bjsxt.struts2.action.StudentAction"method="{1}">
<result>/Student{1}_success.jsp</result>
</action>
<actionname="*_*"class="com.bjsxt.struts2.action.{1}Action"method="{2}">
<result>/{1}_{2}_success.jsp</result>
</action>
</package>
6、接受参数:用Action的属性接收参数和用DomainModel接收参数和用ModelDriven接收参数
使用属性接收参数,即在action里面设置一个属性,struts会调用该属性的set方法设置属性值
使用DomainModel接收参数,即在action设置一个对象如user,通过user.username=test&user.age=18来设置属性值
用ModelDriven接收参数
7、使用addFieldError方法和s:fieldError标签简单处理数据校验
在Action中添加Error
//添加FieldError测试简单数据校验
if(null !=name&& !"admin".equals(name)){
this.addFieldError("name", "name mustbetween 6~12.");
this.addFieldError("name", "name isillegal!");
return ERROR;
}
在JSP中显示Error
<s:fielderror fieldName="name"></s:fielderror><br/>
<s:property value="errors.name[0]"/>
<s:debug></s:debug>
8、Struts2模块包含
Struts.xml
<?xmlversion="1.0" encoding="UTF-8" ?>
<!DOCTYPE strutsPUBLIC
"-//Apache Software Foundation//DTDStruts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constantname="struts.devMode" value="true" />
<include file="login.xml"/>
</struts>
Login.xml
<?xmlversion="1.0" encoding="UTF-8" ?>
<!DOCTYPE strutsPUBLIC
"-//Apache Software Foundation//DTDStruts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="login"extends="struts-default" namespace="/login">
<action name="login*"class="com.bjsxt.struts2.user.action.LoginAction{1}">
<result>/user_login_success.jsp</result>
</action>
</package>
</struts>
9、默认Action
当访问的URL在某个namespace下不存在时,会交给默认Action去处理
<default-action-refname="index"></default-action-ref>
10、Struts2结构类型
Ⅰ.
常用四种类型:
a) dispatcher(默认)
b) redirect
c) chain
d) redirectAction
Ⅱ.全局结果集
a) global-results | extends
Ⅲ.
动态结果(了解)
a)在action中保存一个属性,存储具体的结果location
在struts.xml中可以通过<result>${r}</result>取得action中的属性,这样就可以动态生成result
Ⅳ.
传递参数
a)客户端跳转才需要传递
b) ${}表达式(不是EL)
同一个request共享同一个valueStack
访问action会建立valueStack值栈,而访问jsp不会建立
分享到:
相关推荐
Struts常见错误汇总
但是,在开发工作中,对功能的升级是基于既定架构是很常见的情况。本人碰到需要用开发基于Struts2的HTTP+JSON返回类型接口就是基于既定框架结构下进行的。 Struts2返回JSON有两种方式:...2.使用Struts2对JSON的扩展。
struts1项目500常见错误总结,总结失败的教训,下次我们就不再犯同样的错误了。
这是我在写程序中经常遇到的,希望对大家有帮助,Struts常见错误汇总,大家常遇到的,
Spring,hibernate,struts常见的面试笔试题汇总
好东西,J2EE综合—Struts常见错误的全面总结,非常全面
11个Struts的常见错误chm帮助文档总结了在开发中使用开源框struts时的常见错误,这些错误每一个程序员都会遇到,看了这份文档之后你就可以僻免这11个错误...
集合了各种常见的错误和异常,希望对大家有帮助
常见中间件漏洞总结PPT,内含tomcat、weblogic、Nginx、iis、jboss等的常见漏洞和介绍,培训学习均可用。
Struts+Hibernate+Spring面试题合集及答案常见题目经典精选汇总大全.docx
里面总结了使用ognl做jsp页面时表单提交的一些常见技巧,看了你就知道,很好的
2009-02-24 08:39 1423088 975149 常见的专业问题解决办法\Java中多态变量的讨论和总结.mht 2009-02-24 08:52 156256 34316 常见的专业问题解决办法\Java中的强制类型转换_Believe ┭┮ YourSelf.mht 2009-02-24 08:...
该资源总结了java中常见的三大开源框架的知识点,便于初学者学习。
SSH面试题总结 开源框架struts spring hibernate 常见面试题
Java常用框架常见面试问题 Struts Ajax Spring Hibernate iBatis
关于面试一些常问的问题,是自己在很多面试的过程中间总结出来的,也算是经验之谈。
1.5 SpringMVC + spring3.1.1 + hibernate4.1.0 集成及常见问题总结 1.6 »Spring 之AOP AspectJ切入点语法详解(最全了,不需要再去其他地找了) 1.7 Spring开闭原则的表现-BeanPostProcessor扩展点-2 1.8 Spring...
{1.3.1}总结}{23}{subsection.1.3.1} {1.4}数据类型}{23}{section.1.4} {1.4.1}整数与浮点数}{23}{subsection.1.4.1} {1.4.1.1}浮点数原理}{24}{subsubsection.1.4.1.1} {1.4.2}格式化输出浮点数}{24}{...