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 动态方法调用
应用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 动态方法调用