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中传过来的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)