猿问

求助!javascript中函数调用action问题,具体在下面的例子!

这是我的javascript函数:

function donewsTask(){
//task.jsp一开始加载首先调用这个函数,把action传过去,获取到当前session的username!!!
try {
// location.href='/Test.jsp';
//alert("error");
location.href ='/Task_Action?TestNo=1';
}
catch(e)

{alert("wrong");}

}
在jsp的body里直接
onload="donewsTask()"
很奇怪的是action怎么也取不到,我做了一个测试页面
// location.href='/Test.jsp';
这个页面也是struts1,就可以找到,我直接获取action就不行,我的目的是首页加载完毕之后,会加载我现在这个页面,我想通过body onload调用一个函数直接调用我自己的action,进到action里面获取到当前的session,获取当前用户的用户名,然后再根据用户权限来取值,现在在函数调用那里卡住了,很郁闷,求高手解救,我自己开始学习的是struts2,但是到了公司项目是struts1的,要加一个新模块,我尝试过想在struts1的基础上整合struts2,但是失败了,老老实实的学习struts1,基本的功能我和大家说下,这个系统进去后,用户的信息都被存在session中,我想根据他们的session的username来再做一张表,显示的是当前用户的基本信息和待办事件,以下是我的action和struts-config.xm:

<!--新增加的模块!功能是登陆进去根据登录用户的session取出用户的相应信息 -->
<action name="Task_news" path="/Task_Action" scope="request"
type="com.coreram.newTask.Task_Action" parameter="method" >
<forward name="ok" path="/Test.jsp"/>

public class Task_Action extends DispatchActionSupport {

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

/*SysUser user = (SysUser) request.getSession().getAttribute(com.coreram.framework.Globals.USER_KEY);
if (user.getUsername().equals("超级管理员")) {
System.out.println("oye!");
return mapping.findForward("ok");
}*/
String TestNo = Pub.val(request, "TestNo");
if (TestNo.equals("1")) {
System.out.println("success");
return mapping.findForward("ok");
}
return null;
}
}

</action>
action的位置我放在了最外面


SMILET
浏览 413回答 2
2回答

慕的地6264312

struts1你别弄那么复杂的例子测试,要是你对struts1不懂就用一个简单的例子测试,然后再看哪里不会,然后再求助,你这样弄一堆出来了,我们也不知道哪里出错了。我struts1、struts2都学过了,它们流程上还是比较相似的。只是细节上的东西不同。

智慧大石

location.href ='/Task_Action?TestNo=1';这个看起来没什么问题,你先看看你的web.xml里面是不是有对url进行过滤,看看后缀有没有什么要求,这个后缀不一定是.do或者.action之类的,你要看你们公司在web.xml里面是怎么配置的。想办法先走通吧,不忙着传递参数,先来一个简单版的,看看如何进入action,之后再传参,做业务处理。
随时随地看视频慕课网APP
我要回答