struts2的action类继承action 和supportaction有什么区别

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 01:27:29

struts2的action类继承action 和supportaction有什么区别
struts2的action类继承action 和supportaction有什么区别

struts2的action类继承action 和supportaction有什么区别
不是supportaction吧,是actionsupport吧!
Struts的Action不接受IoC容器管理,Action的代码与Spring API部分耦合,造成代码污染.
这种策略也有其好处:代码的可读性非常强,Action的代码中显式调用业务逻辑组件,而无需等待容器注入.
Action中访问ApplicationContext有两种方法:
1.利用WebApplicationContextUtils工具类
2.利用ActionSupport支持类
WebApplicationContextUtils可以通过ServletContext获得Spring容器实例.ActionSupport类则提一个更简单的方法:getWebApplicationContext(),该方法用于获取ApplicationContext实例.
Spring扩展了Struts的标准Action类,Spring的Action在Struts的Action后加上Suppport,Spring的Action有如下:
1.ActionSupport.
2.DispatchActionSupport.
3.LookupDispatchActionSupport.
4.MappingDispatchActionSupport.
下面分别给出利用ActionSupport的示例代码:
新的业务控制器,继承Spring的ActionSupport类
public class LoginAction extends ActionSupport
{
//依然将ValidBean作为成员变量
private ValidBean vb;
//构造器,注意:不可在构造器中调用getWebApplicationContext()方法
public LoginAction()
{
}
//完成ValidBean的初始化
public ValidBean getVb()
{
return (ValidBean)getWebApplicationContext().getBean("vb");
}
//必须重写该核心方法,该方法actionForm将表单的请求参数封装成值对象
public ActionForward execute(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response)throws Exception
{
//form由ActionServlet转发请求时创建,包装了所有的请求参数
LoginForm loginForm = (LoginForm)form;
//获取username请求参数
String username = loginForm.getUsername();
//获取pass请求参数
String pass = loginForm.getPass();
//下面作服务器端的数据校验
String errMsg = "";
//判断用户名不能为空
if (username == null || username.equals(""))
{
errMsg += "您的用户名丢失或没有输入,请重新输入";
}
//判断密码不能为空
else if(pass == null || pass.equals(""))
{
errMsg += "您的密码丢失或没有输入,请重新输入";
}
//如果用户名和密码不为空,才调用业务组件
else
{
//vb是业务逻辑组件,通过上面的初始化方法获得
if (getVb().valid(username,pass))
{
return mapping.findForward("welcome");
}
else
{
errMsg = "您的用户名和密码不匹配";
}
}
//判断是否生成了错误信息,
if (errMsg != null && !errMsg.equals(""))
{
//将错误信息保存在request里,则跳转到input对应的forward对象
request.setAttribute("err" ,errMsg);
return mapping.findForward("input");
}
else
{
//如果没有错误信息,跳转到welcome对应的forward对象
return mapping.findForward("welcome");
}
}
}
这种整合策略下,表现层的控制器组件不再接受IoC容器管理.因此没有了控制器context,应将原有的action-servlet.xml文件删除,并修改plug-in元素,不要加载该文件.还要修改action配置,将action配置的type元素修改成实际的处理类.这种整合策略也有个好处:代码可读性更强,对传统Struts应用开发的改变很小,容易使用.
将该Action部署在struts-config.xml中,Struts将负责创建该Action.struts-config.xml文件的源代码如下:

struts2的action类继承action 和supportaction有什么区别 act与action的区别 java.lang.NoSuchMethodException:com.jin.struts.action.PerformUsers.execute()我用的是Struts2 我自己写的控制类PerformUsers,没有继承Action,所以没有写execute方法,而是在里面写了多个结构跟execute方法相似的方法.就 请问Struts2的action配置中这配置是什么意思? 请问act ,action ,activity的区别 形如pollute---pollution ,predict---prediction ,act---action 的单词? There is no Action mapped for namespace / and action name login这是STRUTS2的错误蛋疼(^人^)高手帮我解决, struts2的标签问题我在跳转此页面的action里有一个Person person类的属性 Person类里又有一个birthday的属性那么我在页面上怎么取出birthday的值啊? act action actor perform 区别 android中 action = action & android 的继承Action的子类中onkeyup方法中有action =0,但上面那个表达式具体什么意思呀,还有action = action & 0x3B;action = action & 0x3D;action = action & 0x3E;action = action | 0x10;等等这些 act和action的区别是关于作为行动的词义 比如:an action of kindness 和an act of kindness有和不同 Struts2中result-type的作用是?包继承了 之后,result-type的作用是什么?通常哪些情况才需要使用? struts2的标签的用法 Struts2警告:org.apache.struts2.dispatcher.Dispatcher - Could not find action or resultWARN [08-19 19:29:10] org.apache.struts2.dispatcher.Dispatcher - Could not find action or resultThere is no Action mapped for namespace /pages and action name . struts2+spring +Hibernate的思想 关于struts2,我的ACTION,名字叫做 LoginAction,那么,我在struts.xml文件中的package name=里面应该写 像act的名词形式是action,人物是actor,形容词是active,副词是actively act和action有什么区别?