精华内容
下载资源
问答
  • Struts2_Action访问与Action方法调用

    千次阅读 2016-05-16 09:36:27
    一、Action访问路径 Action的访问路径是由struts.xml文件中配置的Action所在包的命名空间,Action的名字和常struts.action.extension共同决定的 例如: /1.jsp /2.jsp
    一、Action访问路径
    
    Action的访问路径是由struts.xml文件中配置的Action所在包的命名空间,Action的名字和常struts.action.extension共同决定的

    例如:

        <constant name="struts.action.extension" value="action, ," />
        <package name="default"  namespace="/"  extends="struts-default">
           <action name="hello">
             <result>/1.jsp</result>
           </action>
        </package>
        
        <package name="a"  namespace="/a"  extends="struts-default">
           <action name="hello">
             <result>/2.jsp</result>
           </action>
        </package>
    

    访问default包下的名字叫hello的Action,须运行路径:/hello  或 /hello.action
    访问a包下的名字叫hello的Action,须运行路径:/a/hello 或 /a/hello.action
     
     
    如果将struts.action.extension的值修改成do

    <constant name="struts.action.extension" value="do,action" />
    

    访问a包下的名字叫hello的Action,须运行路径:/a/hello.do 或 /a/hello.action

     

    包的命名空间
    每个包的命名空间不同,包中的Action不能同名,不同包的Action可以同名
    同一个Web应用有可能出现同名Action,把它们放在不同的命名空间下,可以避免访问冲突。
    如果在某Action在该命名空间找不到,就在默认命名空间找,在默认命名空间还找不到就会报错

    按照上面的配置
    访问 /hello.action 则跳转  /1.jsp
    访问 /a/hello.action 则跳转 /2.jsp
    访问 /b/hello.action 则跳转 /1.jsp
    访问 /b/hi.action 则找不到页面,报异常


    二、Action方法调用与动态方法调用
    Action接收请求默认调用execute方法,但这已经满足不了我们的需求。通常我们会把一个业务模块的所有请求定义在同一个Action类,这就需要Action类提供更多的方法处理不同的请求,而不仅仅是一个execute方法。
    例如我们想定义一个用户模块的增删查改请求,就可以采取如下方式实现

    package com.puckasoft.web.action;
    
    public class UserAction {
     public String saveUser() throws Exception{
      System.out.println("添加用户");
      return null;
     }
     public String updateUser() throws Exception{
      System.out.println("修改用户");
      return null;
     }
     public String deleteUser() throws Exception{
      System.out.println("删除用户");
      return null;
     }
     public String showUser() throws Exception{
      System.out.println("查询用户");
      return null;
     }
    }
    

    配置方法一:action方法调用

        <package name="user"  namespace="/user"  extends="struts-default">
          	<action name="save"  class="com.puckasoft.web.action.UserAction"  
          	method="saveUser"></action>
          	<action name="update"  class="com.puckasoft.web.action.UserAction"  
          	method="updateUser"></action>
          	<action name="delete"  class="com.puckasoft.web.action.UserAction"  
          	method="deleteUser"></action>
          	<action name="show"  class="com.puckasoft.web.action.UserAction"  
          	method="showUser"></action>
        </package>

    运行路径路径格式: 包的命名空间/Action的名字  

       用户添加 /user/save.action
       用户更新 /user/update.action
       用户删除 /user/delete.action
       用户查看 /user/show.acton
       
       
    配置方法二:action动态方法调用DMI

    <constant name="struts.enable.DynamicMethodInvocation" value="true" />
    <package name="user"  namespace="/user"  extends="struts-default">
         <action name="index"  class="com.puckasoft.web.action.UserAction"/>
    </package>
    

    运行路径格式:包的命名空间/Action的名字!Action类中定义的方法名
       用户添加 /user/index!saveUser.action
       用户更新 /user/index!updateUser.action
       用户删除 /user/index!deleteUser.action
       用户查看 /user/index!showUser.acton
     
    只用设置常量struts.enable.DynamicMethodInvocation为true才能执行动态调用,它默认是开启的。

     

    配置方法三:使用通配符定义Action
    使用通配符,将配置量降到最低。
    在action元素的name属性中可以使用*通配符,它可以匹配除了/以外的多个连续字符,在action元素的class和method属性以及 result元素中可以引用*通配符在访问期间实际匹配的内容

    <package name="user"  namespace="/user"  extends="struts-default">
      <action name="*" class="com.puckasoft.web.action.UserAction" method="{1}User"/>
    </package>
    

    运行路径路径格式: 包的命名空间/Action的名字

       用户添加 /user/save.action
       用户更新 /user/update.action
       用户删除 /user/delete.action
       用户查看 /user/show.acton


    展开全文
  • java设置web首页访问action

    万次阅读 2015-03-19 17:30:17
    如果需要首页是动态的页面 就需要先进action访问数据 再回到首页显示  因为 welcome-file 必须是实际存在的文件,不能是action或者servlet路径 如果直接把index.jsp改成action 会出现404 index.action直接设置...


    <welcome-file>index.jsp</welcome-file>
    一般首页进的是静态页面

    如果需要首页是动态的页面 就需要先进action访问数据 再回到首页显示 

    因为 welcome-file 必须是实际存在的文件,不能是action或者servlet路径

    如果直接把index.jsp改成action  会出现404

    <welcome-file>index.action</welcome-file>直接设置action,404和struts2中的解决方案


    解决方法有三种 我最经常用第一种

    第一种

    因为web.xml中 默认是

    <welcome-file>index.jsp</welcome-file> 在空白的index.jsp中使用META重定向。

    操作:<META HTTP-EQUIV="Refresh" CONTENT="0;URL=max/HelloWorld.action">

    其中,
    content="1 是时间控制,表示1秒后自动跳转到要跳转的页面. 
    content="0 表示打开该页后立即跳转到你要跳转的页面. 
    url 是要跳转的路径

    完整例子

    index.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ include file="/include/header.jsp"%>
    </head>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<META HTTP-EQUIV="Refresh" CONTENT="0;URL=query/gseList">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    
      </head>
      
      <body>
      
      </body>
    </html>
    

    struts文件 配置action

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE struts PUBLIC
    	"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    	"http://struts.apache.org/dtds/struts-2.1.7.dtd">
    <struts>
    	<package name="query" extends="json-default" namespace="/query">	
    		<action name="gseList" class="GseListAction">
    			<result name="success">/list.jsp</result>
    		</action>	
    		
    	</package>
    	
    </struts>
    





    第二种

    web.xml中改成

    <welcome-file>index.action</welcome-file>

    在WebRoot下新建一个index.action空文件




    第三种

    因为 welcome-file 必须是实际存在的文件,不能是action或者servlet路径你可以设置一个 比如 <welcome-file>goindex.jsp</welcome-file>,然后 goindex.jsp 写 <jsp:forward page="index.action" /> 就行了。意思就是借助一个jsp页面来转发请求进入action。

    因为struts2采用过滤器的方式处理请求,默认情况时监控url地址的变化
    必须如下操作:
    第一步:
    web.xml中修改
    <filter-mapping>
      <filter-name>struts2</filter-name>
      <url-pattern >/*</url-pattern>
      <dispatcher>REQUEST</dispatcher> 
      <dispatcher>FORWARD</dispatcher>   
    </filter-mapping>
    第二步:
    web.xml中添加
    <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    第三步:
    首页跳转语句
    index.jsp内容如下:
    <jsp:forward page="HelloWorld.action"></jsp:forward>



    展开全文
  • Action访问Servlet API   Struts2中的Action并没有和任何Servlet API耦合,这样框架更具灵活性,更易测试。  对于Web应用的控制器而言,不访问ServletAPI是几乎不可能的。Web应用中通常需要访问的ServletAPI...

                Action访问Servlet API   

               Struts2中的Action并没有和任何Servlet API耦合,这样框架更具灵活性,更易测试。

               对于Web应用的控制器而言,不访问ServletAPI是几乎不可能的。Web应用中通常需要访问的ServletAPI就是HttpServletRequest、HttpSession和ServletContext,这三个接口分别代表JSP中内置对象中的request、session、application。

              Struts 2提供了一个ActionContext类,Struts 2的action可以通过该类来访问Servlet API

             ActionContext类提供了一个静态方法getContext(),该方法返回一个ActionContext的实例。该实例提供了一些访问Servlet API的方法。     

    方法名

    功能描述

    getContext()

    静态方法,获取系统的ActionContext实例

    getSession()

    返回一个Map对象,该对象存入HttpSession实例。

    setSession(Map session)

    直接传入一个Map实例,将该map实例总得key、value对应转换成session的属性名、属性值

    getApplication()

    返回一个Map对象,该对象存入ServletContext实例

    setApplication()

    直接传入一个Map实例,将实例中的key、value对应转换成application的属性名、属性值

    getParameters()

    获得所有请求参数。类似于调用HttpServletRequest对象的getParameterMap方法

              ActionContext将在Action类中通过ActionContext访问Servlet API,该Action中示范了向request、session、application范围设置属性值。         

        ActionContext ctx = ActionContext.getContext(); 
      
        //获得Session 
        Map session = ctx.getSession(); 
      
        //获得Application 
        Map application = ctx.getApplication();
    

              struts 2即可以彻底与Servlet API 分离,从而可以允许该脱离Web容器运行,也就可以脱离Web容器来测试Action;又允许用简单的方式来操作request、session、application范围的属性。

     

           Action 直接访问Servlet API

          虽然Struts 2 提供了ActionContext来访问Servlet API,但这种访问毕竟不是直接获得Servlet API的实例。Struts 2 提供了几种接口,Action可以直接访问Servlet API

     

    实现接口名称

    接口描述

    ServletContextAware

    实现该接口的Action可以直接访问Web应用的ServletContext实例

    ServletRequestAware

    实现该接口的Action可以直接访问用户请求的HttpServletRequest实例

    ServletResponseAware

    实现该接口的Action可以直接访问服务器响应的HttpServletResponse


            private HttpServletResponse response;
    	//重写实现ServletResponseAware接口
    	public void setServletResponse(HttpServletResponse response) {
    		this.response = response;
    		
    	}

              通过上面可知,实现ServletResponseAware接口,只需要实现如下方法:

             public void setServletResponse(HttpServletResponse response);

             类似的,如果一个Action实现了ServletRequestAware,则需要实现如下方法:

             public void setServletRequest(HttpServletRequest request);

             类似的,如果一个Action实现了ServletContextAware,则需要实现如下方法:

             public void setServletContext(ServletContext  context);

             即使我们在struts 2 的Action类中获得了httpServletRespose对象,也不要尝试直接在Action中对客户端生成响应。

            

             使用ServletActionContext访问Servlet API

             为了能够直接访问Servlet API,struts 2 还提供了一个ServletAction工具类,这个类包含了如下几个静态方法

    返回值

    方法名

    功能描述

    HttpServletRequest

    getRequest()

    获得Web应用的HttpServletRequest对象

    HttpServletResponse

    getResponse()

    获得Web应用的HttpservletResponse对象

    ServletContext

    getServletContext()

    获得Web应用的ServletContext对象

    PageContext

    getServletContext()

    获得Web应用的ServletContext对象

     

          借助于ServletActionContext工具类的帮助,Action能以更加简单的方式来访问Servlet API。

          

          读李刚《轻量级java EE企业应用实战(第三版)—struts 2+Spring 3+Hibernate整合开发》

     

     

     

     

     

     

     

     

     

    展开全文
  • 当一个Action处理了多个控制逻辑的时候,可能需要使用这个Action中的不同方法来进行不同的处理,此时有两种方法可以选择。 1.动态方法调用Action。 这种方法,需要在struts.xml中对其进行支持: 当struts.xml中...

    当一个Action处理了多个控制逻辑的时候,可能需要使用这个Action中的不同方法来进行不同的处理,此时有两种方法可以选择。


    1.动态方法调用Action。

    这种方法,需要在struts.xml中对其进行支持:

    <!-- 是否开启动态方法调用 -->
    	<constant name="struts.enable.DynamicMethodInvocation" value="true" />

    当struts.xml中的这个配置的value为true时,代表可以使用动态方法对action进行调用。

    然后使用“actionName!methodName“,这种形式:action名字!使用的方法名字  就可以调用不同的方法了。

    首先配置struts.xml 添加一个名字为:test的action:

    <?xml version="1.0" encoding="UTF-8"?>  
    <!DOCTYPE struts PUBLIC  
                "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"  
        "http://struts.apache.org/dtds/struts-2.5.dtd">
    <struts>
    	<include file="struts-default.xml"></include>
    	<!-- 指定默认编码集 -->
    	<constant name="struts.i18n.encoding" value="UTF-8"></constant>
    	<!-- 指定需要Struts2处理的请求后缀 -->
    	<constant name="struts.action.extension" value="do,action"></constant>
    	<!-- 设置浏览器是否缓存静态内容,开发阶段应关闭,生产阶段打开,默认为打开 -->
    	<constant name="struts.serve.static.browserCache" value="false"></constant>
    	<!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认为false,开发阶段应打开 -->
    	<constant name="struts.configuration.xml.reload" value="true"></constant>
    	<!-- 开发模式下使用,可以打印出更详细的错误信息 -->
    	<constant name="struts.devMode" value="true"></constant>
    	<!-- action全部用注解进行配置 -->
    
    	<!-- 是否开启动态方法调用 -->
    	<constant name="struts.enable.DynamicMethodInvocation" value="true" />
    	<!--添加包 -->
    	<package name="hellostruts" extends="struts-default">
    	    <action name="test" class="hellostruts.test">
    	        <result name="success">success.jsp</result>
    	        <result name="error">error.jsp</result>
    	        <allowed-methods>login,print</allowed-methods>
    	    </action>
    	</package>
    </struts>  

    注意:在Struts2.5中必须为想要支持动态访问的method在<allowed-methods>标签中进行描述。

    <allowed-methods>login,print</allowed-methods>
    也就是这句话。


    很明显,这里会有两个方法,一个叫login,一个叫print。

    action代码:

    package hellostruts;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts2.ServletActionContext;
    
    
    public class test {
    	HttpServletRequest request = ServletActionContext.getRequest();
    	HttpServletResponse response = ServletActionContext.getResponse();
    	
    	
    	String username = request.getParameter("username");
    	String password = request.getParameter("password");
    	
    	
    	public void setUsername(String username) {
    		this.username = username;
    	}
    	
    	public void setPassword(String password) {
    		this.password = password;
    	}
    	
    	public String login() {
    		if(username.equals("Leafage") && password.equals("123456")) {
    			return "success";
    		} else {
    			return "error";
    		}
    	}
    	
    	public void print() throws IOException {
    		PrintWriter out = response.getWriter();
    		out.print(username);
    		out.print(password);
    	}
    }


    在一个jsp代码中进行分别访问这两个方法:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    	<form action="test!login.action" method="post">
    		用户名:<input type="text" name="username">
    		密码:<input type="text" name="password">
    		<input type="submit" value="提交">
    	</form>
    	<form action="test!print.action" method="post">
    		用户名:<input type="text" name="username">
    		密码:<input type="text" name="password">
    		<input type="submit" value="提交">
    	</form>
    </body>
    </html>

    方便起见,这里直接使用了两个表单,第一个访问的是名字为test的action中的login方法,而第二个表单访问的是名字为test的action中的print方法。

    两个表单中输入的内容都是:用户名:Leafage,密码:123456.

    点击第一个表单提交时,由于访问的是login方法,该方法返回一个success或者error,此时应该是返回的success,然后<result>标签进行处理。所以得到的结果就是:



    而我使用第二个表单进行提交的时候,访问的就是print方法,将用户名和密码进行打印。所以此时得到的结果就是:




    2.通过通配符指定访问方法或者类。

    这种方法较为简单,也比较常用。


    struts2中可以在action标签中使用method属性,来指定调用哪一个方法。


    同样的是上述的例子,首先处理逻辑的action类不用修改,需要将struts.xml中配置的内容进行部分修改。

    如果想要访问这两种方法,最简单的就是使用两个action标签,然后指定不同的method即可,就像这样:

    <package name="hellostruts" extends="struts-default">
    	    <action name="testlogin" class="hellostruts.test" method="login">
    	        <result name="success">success.jsp</result>
    	        <result name="error">error.jsp</result>
    	    </action>
    	    <action name="testprint" class="hellostruts.test" method="print">
    	    </action>
    	</package>

    然后在表单中访问的URL修改成:

    <form action="testlogin.action" method="post">
    		用户名:<input type="text" name="username">
    		密码:<input type="text" name="password">
    		<input type="submit" value="提交">
    	</form>
    	<form action="testprint.action" method="post">
    		用户名:<input type="text" name="username">
    		密码:<input type="text" name="password">
    		<input type="submit" value="提交">
    	</form>

    这样当然可以进行访问,但是很明显在action标签进行配置的时候出现了冗余。

    所以,这个时候就需要使用到通配符来解决这个问题。


    修改刚才的action标签,使其长成这个样子:

    	<package name="hellostruts" extends="struts-default">
    	    <action name="test*" class="hellostruts.test" method="{1}">
    	        <result name="success">success.jsp</result>
    	        <result name="error">error.jsp</result>
    	        <allowed-methods>login,print</allowed-methods>
    	    </action>
    	</package>

    这里的action属性name长成了“test*”样子,然后后面的method成了"{1}"样子。

    这是说明了,如果URL是testXXX,这种样子,就像刚才两个表单中的URL:testlogin、testprint的样子,都会被这个action所处理,然后调用的方法就是*符号所匹配到的内容,如果是:testlogin,调用的方法就是login,当然,如果是:testprint,调用的就是print方法。


    同样的:在struts2.5中需要使用<allowed-methods>标签来指定允许进行匹配的方法。

    如果不使用<allowed-methods>配置的话,就会出现以下错误提示:



    如果使用的URL可以被多个action所匹配的话,那么需要遵守下面的规则:

    1.如果URL可以被action完全匹配的话,就使用该action。完全匹配的意思就是:如果访问的URL为:testlogin.action,那么这个action中的那么一定为:testlogin(忽略后面的后缀.action)也就是说URL和action的name完全一样。

    2.如果没有和URL完全一样的action标签的name的话,那么struts.xml中你所写入的action标签从上往下依次进行匹配,出现能够匹配的话,就调用该action。


    例如:

    <package name="hellostruts" extends="struts-default">
    	    <action name="*" class="hellostruts.test" method="{1}">
    	        <result name="success">success.jsp</result>
    	        <result name="error">error.jsp</result>
    	        <allowed-methods>login,print</allowed-methods>
    	    </action>
    	    <action name="test*" class="hellostruts.test" method="{1}">
    	        <result name="success">success.jsp</result>
    	        <result name="error">error.jsp</result>
    	        <allowed-methods>login,print</allowed-methods>
    	    </action>
    	    <action name="testlogin" class="hellostruts.test" method="login">
    	        <result name="success">success.jsp</result>
    	        <result name="error">error.jsp</result>
    	    </action>
    	</package>



    这样的话,如果URL为:testlogin,那么使用的就是第三个action标签;如果是tsetprint的话,使用的就是第二个action标签;如果是aaaa的话,就是第一个action标签了。所以通常可以使用第一种:name=“*”,来设置为默认action,因为这个可以匹配所有的URL样式,那么当其他action不能匹配的话,这个一定可以的。


    同样的,也可以在class属性中使用{N},来分别调用不同的类进行实现,就跟method方法类似。

    <action name="test*" class="hellostruts.{1}" method="{1}">
    	        <result name="success">success.jsp</result>
    	        <result name="error">error.jsp</result>
    	        <allowed-methods>login,print</allowed-methods>
    	    </action>
    这样,如果访问的URL为:testlogin,那么就会使用hellostruts.login这个类。


    所需要注意的就是:struts2.3之后,无论是动态方法访问action和通配符访问action,都需要加上<allowed-methods>标签。

    展开全文
  • 本文摘自:李刚 著 《轻量级 Java EE企业应用实战 Struts2+Spring+hibernate整合开发》   ... Struts2的Action没有和任何Servlet API进行耦合,这是Struts2的一个改良之处,因为Struts2 不再和S
  • Stripes视图框架实现ActionBean视图访问

    千次阅读 2013-11-05 16:23:02
    Stripes最基本的实现是类似于Struts的请求,但没有Struts...下面就来看看怎样实现一个web应用的Action访问操作。本篇博文为设计Stripes的三种访问方式:普通Action的映射访问、类Servlet访问方式、Rest变参访问方式。
  • Java设置web项目访问action

    千次阅读 2017-10-25 17:22:45
    如果需要首页是动态的页面 就需要先进action访问数据 再回到首页显示  因为 welcome-file 必须是实际存在的文件,不能是action或者servlet路径 如果直接把index.jsp改成action 会出现404 index.action直接设置...
  • Struts2 Action访问路径

    万次阅读 2010-12-25 17:34:00
    1. Action访问路径  扩展名 缺省以.action结尾,请参考:default.properties文件,可以通过配置改变这一点:   <constant name="struts.action.extension" value="action,do,webwork" />...
  • struts2如何访问action的特定方法

    千次阅读 2013-07-22 09:18:22
    在使用struts2的时候,我们一般会在一个action中处理很多事情,那么不指定方法就会访问action的默认方法execute,如果指定了则会访问指定的方法。 例如: http://localhost/struts2/simple/hello.action 默认调用...
  • 方法一:.[一般推荐使用](只能获得request,而response则得不到)Struts2提供了一个ActionContext类,Struts2中的Action可以通过它进行访问。其方法有:get(),getApplication(),getContext(),getP
  • AJAX 访问action 时 如何让action 只输出结果不跳转
  • JSP页面加载时同时访问action获取数据( struts标签s:action方法) 使用if解决死循环
  • 现象:Action 定义为通配符形式,Action中的delete,input等方法访问正常,但新加的其它方法(如a(), b())无法访问 原因:strust2 2.3以上版本增加了安全控制 解决办法: 在配置中增加:    ……...
  • Struts2的Action访问Servlet API的方式

    千次阅读 2012-05-07 16:45:52
    在Struts2开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话 (Session)的一些信息,甚至需要直接对JavaServlet Http的请求(HttpServletRequest),响应...
  • 整合SSH的时候访问jsp没有问题,访问action的时候页面报404 tomcat启动正常未报错 后台无反应 action方法断点没有进入 ![图片说明](https://img-ask.csdn.net/upload/201510/03/1443887104_74370.png) ![图片...
  • 、如果是简单的单一的一个 struts—config.xml 文件 (或者项目中所有的struts配置文件直接都在WEB-INF目录下)对应的Action访问路径path设置就是对应页面中访问Action的路径如: name="BrdBaseForm" ...
  • struts2中Action访问servlet的两种方式

    万次阅读 热门讨论 2014-07-26 21:11:37
    一、IoC方式    在struts2框架中,可以通过IoC方式将servlet对象注入到Action中,通常需要Action实现以下... 实现该接口的Action可以直接访问Request对象,该接口中提供void setServletRequest(HttpServletR
  • Action访问servletAPI以及复制项目小技巧
  • Struts2 中访问Action时,默认是执行Action的 execute 方法.  但是我们在实际运用中往往会遇到一个Action中有多个方法,不同场景下发出的请求要去调用不同的执行方法的情况 Struts2中提供了三种方式,供使用者来自定义...
  • SSH中action访问session的方法!

    千次阅读 2014-03-08 20:55:09
    第一种:通过实现SessionAware接口来获取action @SuppressWarnings("serial") public class SurveyAction extends BaseAction implements SessionAware {  @Resource  private SurveysService surveyService; ...
  • Struts2中action访问路径配置

    万次阅读 2015-08-07 15:37:46
    <constant name="struts.convention.package.locators.basePackage" value="com.cmcc.bdp.action" /> ....................................... 下面是一部分constant的讲解:   用了 ...
  • java web项目如果使用注解方式开发,打成war包后部署到weblogic上后会出现 "There is no Action mapped for namespace / and action name" action未找到的问题,解决方法: 在struts.xml里新增以下两行配置: ...
  • jsp页面访问Struts1的Action路径问题

    千次阅读 2011-08-15 16:41:46
    通常我们都会通过jsp页面来访问struts,很多同学访问的...这里除了有些是相对路径或绝对路径没有写正确之外,在jsp页面中用form和struts的标准标签库来访问action写法也是不一样的:以struts配置中的path=“/login”
  • Nginx访问.do/.action的方法

    千次阅读 2017-09-12 09:22:29
    location ~ \.(do|action)$ {  proxy_pass xx:xx:xx ; }客户端如果访问localhost/xx.do或者localhost/xx.action 都会跳到对应的代理ip
  • 警告: Could not find action or result There is no Action mapped for namespace [/] and action name [login] associated with context path [/flatform]. - [unknown location]  at ...
  • mvc4 Url.Action 访问其他 area

    万次阅读 2014-06-03 16:05:39
    刚开始我试了不行,以为无效,后来检查自己的路由发现,我的路由参数 没有这一行,new { action = "Index", id = UrlParameter.Optional } 导致参数缺少时,不能匹配到该路由。如果设置area无效的话,可以参考...
  • 在通常的web开发中Request和Response对象比较常见,但在Struts2框架中由于Action能与JSP页面进行数据交互,所以通常都不会用到这两个对象。如果想在Struts2程序中用到这两个对象,也有解决方法 Struts2的Action...
  • 在Struts2开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息,甚至需要直接对JavaServlet Http的请求(HttpServletRequest),响应...
  • (Struts2)Action的三种访问方式

    千次阅读 2018-05-28 07:41:27
    标签中的method属性,访问Action中的具体的方法 * 传统的配置方式,配置更清晰更好理解!但是扩展需要修改配置文件 * 具体的实例如下: * 页面代码:&lt;h3&gt;传统的配置文件的方式&lt;/h3&...
  • 以前一直都是理所当然的认为浏览器发起一个请求到后台action,肯定是创建一个新线程并创建一个新类来为这个请求服务,其中的想法也比较混乱却没有理会。 直到近期遇到了一个新的需求要做高并发的时候抢购一个物品,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 445,055
精华内容 178,022
关键字:

action访问401