论坛首页 Java企业应用论坛

Struts2学习笔记---action的简单使用

浏览 6190 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (3) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-05-04  

具体视图的返回可以由用户自己定义的Action来决定
具体的手段是根据返回的字符串找到对应的配置项,来决定视图的内容
具体Action的实现可以是一个普通的java列,里面有public String execute方法即可
或者实现Action接口

 

struts.xml文件(注意必须放在src路径下,不能放在里面的包里)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <!-- Add packages here -->
	<constant name="struts.devMode" value="true" />
    <package name="front" extends="struts-default" namespace="/">
        <action name="test" class="org.hualang.strutsaction.Test1">
            <result name="success">/index.jsp</result>
        </action>
    </package>
</struts>

 
然后在src目录下创建包org.hualang.strutsaction,在里面创建三个类,分别为Test1.java,Test2.java,Test3.java

 

package org.hualang.strutsaction;

public class Test1 {
	public String execute()
	{
		return "success";
	}
}

 第一种,如果没有写execute()就不能调用了,

而且也不能调用各种各样的方法

package org.hualang.strutsaction;

import com.opensymphony.xwork2.Action;

public class Test2 implements Action {

	public String execute() throws Exception {
		// TODO Auto-generated method stub
		return "success";
	}
}

 

第二种实现接口,但是用不了方法,所以不好

package org.hualang.strutsaction;

import com.opensymphony.xwork2.ActionSupport;

public class Test3 extends ActionSupport {

	@Override
	public String execute(){
		// TODO Auto-generated method stub
		return "success";
	}
}

 

当没有匹配的时候,默认执行的是自己的class,叫作ActionSupport.class

真正开发的时候,只用Test3中的继承ActionSupport,原因是ActionSupport已经封装了一

系列可以直接调用的方面的方法,这样就可以在子类中直接调用,所以在企业开发的时候只用第三种

 

下面是运行结果


 

其他:Struts1与Struts2的一个小区别

 struts2每次访问action的时候都会有new一个新的action对象,struts1则是一直使用同一

个action对象

 

  • 大小: 8.7 KB
   发表时间:2011-05-05  
其实struts1和struts2的区别还挺多的...
虽然大致类型..
0 请登录后投票
   发表时间:2011-05-05  
332946505 写道
其实struts1和struts2的区别还挺多的...
虽然大致类型..

恩,就是。现在企业一般不用struts1了,所以如果直接从struts2开始学习其实不错,struts2跟以前的webwork差不多,跟struts1基本上不一样,呵呵
0 请登录后投票
   发表时间:2011-05-05  
Could not find property [struts.actionMapping]
0 请登录后投票
   发表时间:2011-05-06  
刚毕业出来的吧,还是培训?
0 请登录后投票
   发表时间:2011-05-06  
justinyao 写道
刚毕业出来的吧,还是培训?

还没有出来呢
0 请登录后投票
   发表时间:2011-05-07  
hualang 写道

 

package org.hualang.strutsaction;

public class Test1 {
	public String execute()
	{
		return "success";
	}
}

 第一种,如果没有写execute()就不能调用了,

而且也不能调用各种各样的方法

 

 

package org.hualang.strutsaction;

import com.opensymphony.xwork2.Action;

public class Test2 implements Action {

	public String execute() throws Exception {
		// TODO Auto-generated method stub
		return "success";
	}
}

 

第二种实现接口,但是用不了方法,所以不好

package org.hualang.strutsaction;

import com.opensymphony.xwork2.ActionSupport;

public class Test3 extends ActionSupport {

	@Override
	public String execute(){
		// TODO Auto-generated method stub
		return "success";
	}
}

 

action与actionSupport与你调用各种各样的方法无关,第一种情况下,你也可以调用各种各样的方法。它们不是必须的,只不过让你开发的更方便

0 请登录后投票
   发表时间:2011-05-07  
1和2区别其实还是很大的。
0 请登录后投票
   发表时间:2011-05-07  
一般只用第三种方式。
0 请登录后投票
   发表时间:2011-05-07  
struts.xml配置文件是可以修改存放地方的,action里面也不一定要有execute方法。好好看看官网的DEMO吧,呵
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics