STRUTS2学习笔记(1)

来源:互联网 发布:汤普森 防守 知乎 编辑:程序博客网 时间:2024/05/27 19:27
STRUTS2
应用STRUTS2之前先思考,为什么用STRUTS2,首先想到的就是它把请求与展现分开了,提供了最大的灵活性,
但是这点在之前的MOD2就可以达到了,那么STRUTS2相对于MOD2来说就应该是有更强的功能性。


STRUTS2的定义为基于MVC模式的轻量级WEB应用框架


STRUTS2的处理过程


1发送请求 2调用execute方法3调用业务方法
浏览器------------>STRUTSPREPAREANDEXECUTFILTER----------------->xxxAction--------------->MODEL
|  || |
|  || |
| 8输出响应 | 5返回逻辑视图名| 4 返回业务结果|
<-------------------------|<------------------------------- |<----------------- |
| |
  6forward到物理视图| |
| |7生成响应内容
/  |
  /   /
JSP —>/


STRUCTS2 学习记录(1)
 EX: <package name="main" extends="struts-default" namespace="/">
  <action name="front" class="com.neusoft.struts2.front.action.IndexAction1">
      <result name="success">index.jsp</result>
<1>package的作用,在命名上用来解决重名的情况,参考JAVA中package理解
<2>namespace 默认为空,当namespace为空的时候就可以在任何路径上需找到其对应的结果,可以理解为此index 可以处理任何其他package中解决不了的index页面
<3>action 中 class  当请求到此action时 会去调用URL地址上的文件,而在此JAVA文件中会有一个execute(或者其他名称STRING类型方法)方法,执行后返回SUCCESS或ERROR或者input或者NONE或者LOGIN(可重写此方法返回自己需要的字符串)
通常在IndexAction1中会实现ActionSupport接口
EX:public class IndexAction3 extends ActionSupport {

@Override
public String execute() {
return "success";
}
}


<4>result  name默认为success 可以不写
<5>default—action  作用是当在此namespace中找不到对应的页面,就交给defaultaction 处理
<6>路径问题:当需要跳转页面的时候默认路径为当前路径,而不是文件具体所在路径,所以可以使用
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
中的path解决 
EX:<a href="<%=basePath%>index.jsp'>主页</a>
如果在之前加上<base href="<%=basePath%>">则相当于在全局的路径都是在basePath之后了
依然可以写<a href="index.jsp">
<7>DMI 动态方法调用