Struts2是一个优秀的MVC框架,大大降低了各个层之间的耦合度,具有很好的扩展性。
理解Struts2的运行流程
这是整个Struts2的请求和响应流程,下面看具体代码中是如何体现的。
代码实现逻辑 配置web.xml拦截所有的请求让Struts来管理:
//web.xml,首先在web.xml中添加如下代码,拦截所有请求,即所有请求现在全部归Struts2框架管了
<filter>
<filter-name>struts</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
?
编写MVC的控制层Action类
//编写Action充当控制器
public class LoginAction extends ActionSupport {
private String username;
private String password;
public String getUsername(){
return this.username;
}
public void setUsername(String s){
this.username = s;
}
public String getPassword(){
return this.password;
}
public void setPassword(String s){
this.password = s;
}
//默认调用action中的execute方法
public String execute() throws Exception{
?
if(getUsername().equals("walker")&&getPassword().equals("yam")){
return SUCCESS;
}
return ERROR;
}
}
配置Struts的指定控制层类 action中配置 result指定后台retrun 出的页面
//新建Struts.xml文件用于配置框架
jsp发送请求去struts配置类去寻找指定的控制层
/*login.jsp*/
<html>
<head>
<title>login</title>
</head>
<body>
<form method="post" action="login.do">
姓名:<input type="text" name="username" /><br />
密码:<input type="password" name="password" /><br />
<input type="submit" value="提交"/>
</form>
</body>
</html>
struts开发: 首先在jsp文件中找到相应的请求例如CharList.do .do的请求会先找struts的配置struts-config.xml配置类 配置类会指定一个类来做控制层controller例如execute() 一个请求就需配置一个类继承Action类并写上execute()方法进行请求访问 然后execute()方法中调用impl实现类来处理结果集,有可能它们封装了其他的类 例如CHDRDetailPage 就是他们自己封装的处理类,在里面使用了Impl或dao来处理结果。 在jsp指定跳转到哪个请求接口时例如:
action这是他指定的请求 method属性是它指定的方法
<form styleId="CallBackQBMForm" action="callBackQBM.do?method=queryList" method="post">
ActionForward是来指定你配置跳转的页面,页面配置在struts-config.xml中配置
<action
attribute="groupChdrForm"
name="groupChdrForm" //别名
path="/callBackQBM" //请求的路径拦截
parameter="method" //指定的方法通过jsp请求参数带入
scope="request"//这个属性就是问,从表单获取的值,是存储在什么位置上。可以使当页、请求、会话和应用。
type="com.citic.crm.ncrm.strust.action.group.CallBackQBMAction" //通过该类来进行处理
validate="false">
<forward name="query" path="/ncrm/group/groupChdrQuery.jsp" /> //最后跳转的页面
</action>
取个别名 绑定这个jsp的文件路径,用于指定页面跳转
反推出来 在编写dao层时在serviceImpl中调用然后需要再控制层controller类继承action来控制action层
指定需要通过cation.xml来配置,cation是通过form表单中的 action="callBackQBM.do?method=queryList" method="post
来指定控制层调用的接口
原文:https://www.cnblogs.com/pemoeo/p/14638232.html