如何在jsp中直接调用action载入数据

如何在jsp中直接调用action载入数据,第1张

1、建一个跳转页面,例如tiaozhuanjsp,里面就一句:

<% responsesendRedirect("actiondo"); %>直接跳action返回时再到indexjsp。

2、在body里加属性onload="actiondo",加载页面时先执行action,就得到数据了,页面直接使用就行。

3、在webxml里配欢迎页面时直接配actiondo,先走action,再返回到indexjsp,望采纳,谢谢。

代码:

public class TagAction extends ActionSupport

{

//封装用户请求参数的author属性

private String author;

//省略author属性的setter和getter方法

//定义第一个处理逻辑

public String execute() throws Exception

{

return "done";

}

//定义第二个处理逻辑

public String login() throws Exception

{

ActionContextgetContext()

put("author", getAuthor());

return "done";

}

}

使用ajax发起异步请求将数据传递给action即可

js代码如下:

<script type="text/javascript" src="js/jquery-183minjs"></script>

<script type="text/javascript">

    $(document)ready(function(){

            //按钮点击事件

            $("#btn")click(function(){

                    //发起异步请求

                    //参数一:请求的地址;参数二:传递的参数;参数三:回调函数,接收服务器回传的数据

                    $post("useraction",{"name":$("#uname")val()},function(data){

                            //显示异步回传的数据

                            if(data=="ok"){

                                alert("成功");

                            }else{

                                alert("失败");

                            }

                    });

            });

    });

</script>java代码如下:

public class UserAction extends ActionSupport{

    private String name; //接收客户端传递的数据

    private InputStream inputStream;  //响应客户端数据的流对象

    //处理请求的方法

    public String execute(){

        String result="no";

        if(nameequals("admin")){

            result="ok";

        }

        inputStream=new ByteArrayInputStream(resultgetBytes());

        

        return SUCCESS;

    }

    

    public String getName(){

        return name;

    }

    public void setName(String name){

        thisname=name;

    }

    public InputStream getInputStream(){

        return inputStream;

    }

    public void setInputStream setInputStream(InputStream inputStream){

        thisinputStream=inputStream;

    }

}strutsxml中关键代码:

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

    <action name="user" class="cnactionUserAction">

        <result type="stream">

            <param name="inputName">inputStream</param>

        </result>

    </action>

</package>

一个请求在Struts2框架中的处理分为以下几个步骤:

1客户端发出一个指向servlet容器的请求(tomcat);

2这个请求会经过图中的几个过滤器,最后会到达FilterDispatcher过滤器。

3过滤器FilterDispatcher是struts2框架的心脏,在处理用户请求时,它和请求一起相互配合访问struts2

的底层框架结构。在web容器启动时,struts2框架会自动加载配置文件里相关参数,并转换成相应的类。

如:ConfigurationManager、ActionMapper和ObjectFactory。ConfigurationManager 存有配置文件的一

些基本信息,ActionMapper存有action的配置信息。在请求过程中所有的对象(Action,Results,

Interceptors,等)都是通过ObjectFactory来创建的。过滤器会通过询问ActionMapper类来查找请求中

需要用到的Action。

4如果找到需要调用的Action,过滤器会把请求的处理交给ActionProxy。ActionProxy为Action的代理对象

。ActionProxy通过ConfigurationManager询问框架的配置文件,找到需要调用的Action类。

5ActionProxy创建一个ActionInvocation的实例。ActionInvocation在ActionProxy层之下,它表示了

Action的执行状态,或者说它控制的Action的执行步骤。它持有Action实例和所有的Interceptor。

6ActionInvocation实例使用命名模式来调用,1 ActionInvocation初始化时,根据配置,加载Action相

关的所有Interceptor。2 通过ActionInvocationinvoke方法调用Action实现时,执行Interceptor。在

调用Action的过程前后,涉及到相关拦截器(intercepetor)的调用。

7 一旦Action执行完毕,ActionInvocation负责根据strutsxml中的配置找到对应的返回结果。返回结果

通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。

jsp中如果是发送请求,属性的值会被封装到>

以上就是关于如何在jsp中直接调用action载入数据全部的内容,包括:如何在jsp中直接调用action载入数据、jsp怎么调用action中方法、struts2中如何在jsp页面中用js取得action中传过来的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9536025.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存