当前位置:首页 > 开发 > 系统架构 > 架构 > 正文

Struts的action和Result总结

发表于: 2014-12-25   作者:百合不是茶   来源:转载   浏览:
摘要:     一:Action的配置详解:      下面是一个Struts中一个空的Struts.xml的配置文件     <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC &quo

 

 

一:Action的配置详解:

     下面是一个Struts中一个空的Struts.xml的配置文件

   

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

<struts>

    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />

    <package name="default" namespace="/" extends="struts-default">

        <default-action-ref name="index" />

        <global-results>
            <result name="error">/WEB-INF/jsp/error.jsp</result>
        </global-results>

        <global-exception-mappings>
            <exception-mapping exception="java.lang.Exception" result="error"/>
        </global-exception-mappings>

        <action name="index">
            <result type="redirectAction">
                <param name="actionName">HelloWorld</param>
                <param name="namespace">/example</param>
            </result>
        </action>
    </package>

    <include file="example.xml"/>

    <!-- Add packages here -->

</struts>

 

 

   

    1,   包配置  

      <package name="default" namespace="/" extends="struts-default">  </package>

 

  2,  name  表示包的名字 

 

  3,  namespace="/"  ;表示访问该包下面的路劲时必须要在路径前加 /xx

                 也可以使用namespace="/space"  访问时加上/space/xx

 <package name="default"  extends="struts-default">
        <action name="hello" >
            <result >/login.html</result>
        </action>
    </package>

 

  当namespace不存在时如何访问;

     xxx/aaa/bbb/hello 

     aa/hello    都可以访问到

 

  4,extends="struts-default"继承默认的标签

 

 

  5,Action中的调用;

   

   a; 普通调用

 <action name="hello" >
            <result >/login.html</result>
        </action>

 

 b,动态调用;

  2,3可能会包错: 

There is no Action mapped for namespace [/user] and action name [user!add] associated with context p

解决办法;

    将DMI打开 <constant name="struts.enable.DynamicMethodInvocation" value="true" />

 

 

6,include模块

  Struts.xml可以相互引入

    <include file="login.xml" />  login,xml的配置与Struts.xml相同

 

7,Struts中Session会话的使用例子;

   保存会话

	@Override
	public String execute() throws Exception {
		System.out.println(">"+username+"<>"+userpwd+"<");
		if ("scott".equals(username) && "tiger".equals(userpwd)) {
		   HttpServletRequest request=(HttpServletRequest) ServletActionContext.getRequest();
		   HttpSession session=request.getSession();
		   session.setAttribute("name", username);
			return "hello";
		} else {
			return "hellow";
		}

	}

 

获取会话

<% 

  String name=(String)session.getAttribute("name");

%>

 欢迎<a href="login.html"><%=name %>登陆</a>

 

 

 

9,Result的使用

   <result type="redirectAction">   重新请求action

   Chain 处理action连接

   Dispatcher 处理jsp页面

    Redirect重定向

 

 

 

 

 

 

 

Struts的action和Result总结

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
[WARN ] 2013-11-21 14:08:16 :Could not find action or result There is no Action mapped for na
我想问一下struts2 的action中result 的配置,就是下面代码的第二行,可以"getQueryList.action?ent
今天调试strust项目出现No result defined for action **** and result **错误。 英文错误提示表明
1、Action配置的各项默认值 (1)、如果没有为action指定class,默认是ActionSupport。 (2)、如果没有
WARN - Could not find action or result No result defined for action com.ky.action.LoginAction
<result type="json"> <!-- 这里指定将被Struts2序列化的属性,该属性在action中必须有对
Struts result param详细设置 Xml代码 <result type="json"> <!-- 这里
<result type="json"> <!-- 这里指定将被Struts2序列化的属性,该属性在action中必须有对
Xml代码 <result type="json"> <!-- 这里指定将被Struts2序列化的属性,该属性在action中
Convention插件自动注册Action的功能让我们从struts.xml配置的繁杂工作中解放出来,但有时候也能带
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号