Struts的action和Result总结

 

 

一: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配置)