请教一个问题,ThinkPHP ,在当前视图中,怎样跳转到别的控制器的Action?

请教一个问题,ThinkPHP ,在当前视图中,怎样跳转到别的控制器的Action?,第1张

ClassforName(className) 实际上是调用ClassforName(className, true, thisgetClass()getClassLoader())。注意第二个参数,是指Class被loading后是不是必须被初始化。 ClassLoaderloadClass(className)实际上调用的是ClassLoaderloadClass(name, false),第二个参数指出Class是否被link。 区别就出来了。ClassforName(className)装载的class已经被初始化,而ClassLoaderloadClass(className)装载的class还没有被link

action中调用另一个action中的方法
建立三个jsp页面
forward1jsp,forward2jsp,forward3jsp
forward2jsp是最后跳转的页面
建立2个action
Forward1Action,Forward3Action
forward1:
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri=">一个action只能对应一个方法来处理吧。你多定义几个action不就得了,况且listAll和add属于不同的动作啊,如果想实现listAll的话也可以直接在对应的get方法里调用 *** 作数据库的方法,return数list链表的时候就是有数据的了。

在ASPNET MVC框架的ControllerBase中存在一个叫做TempData的Property。
它的类型为TempDataDictionary,顾名思义是一个字典类。
TempData在ASPNET MVC中的作用是:可用于在Action执行过程之间传值。
简单的说,可以在执行某个Action的时候,将数据存放在TempData中。
那么在下一次Action执行过程中可以使用TempData中的数据。
如:
1 public ActionResult Index()
2 {
3 thisTempData["MyNane"] = "XiaoMing";
4 return View();
5 }
6 public ActionResult Index2()
7 {
8 string MyName=thisTempData["MyNane"] as string;
9 return View();

所谓的跳转,就是再发起一个指向这个action的连接,需要再浏览器里输入程序里的url,也就是“/getupdateVersionfoByLimitaction”
具体跳转方法如下:
1、先配置 <dispatcher>REQUEST</dispatcher>、<dispatcher>FORWARD</dispatcher>
2、在webxml下加上 <filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
即可实现。

1、如果你想在action中获得值,就必须先从jsp跳转到action,然后action返回的时候被struts拦截,匹配result时,就可以控制跳转到另外一个jsp,这当中的过程看起来很长,但是对于计算机来说是非常短暂的,你不会发现是经过action才跳转到第二个jsp。
2、还有一种方式是用 ajax 将你要传递给action的数据以url+ 参数 + 参数值 的方式(即get方式)传递给后台action,但是这个action不能匹配struts当中的result,否则会报错,最好是定义void方法来获得页面数据,request取值,response响应。


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

原文地址: http://outofmemory.cn/yw/10265809.html

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

发表评论

登录后才能评论

评论列表(0条)

保存