求助!javascript中函数调用action问题!location.href ='/Task_Action?TestNo=1'; 我的框架是struts1 。

这是我的javascript函数:functiondonewsTask(){//task.jsp一开始加载首先调用这个函数,把action传过去,获取到当前session... 这是我的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的位置我放在了最外面
展开
 我来答
蓝天下的智者
2012-07-09 · TA获得超过991个赞
知道小有建树答主
回答量:409
采纳率:100%
帮助的人:305万
展开全部
location.href ='/Task_Action?TestNo=1';这个看起来没什么问题,你先看看你的web.xml里面是不是有对url进行过滤,看看后缀有没有什么要求,这个后缀不一定是.do或者.action之类的,你要看你们公司在web.xml里面是怎么配置的。想办法先走通吧,不忙着传递参数,先来一个简单版的,看看如何进入action,之后再传参,做业务处理。
更多追问追答
追问

action
*.do
我的action类的路径有什么要求么,对这个路径问题很是疑惑
追答
恩,从这里看样看出,你的请求路径后缀需要.do才能进入你的struts配置文件,然后你再看看action 里面的path与你的url是否一样,你的class路径有没有写对,能否正确进入你的action类。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
被顶替了
2012-07-09 · 超过15用户采纳过TA的回答
知道答主
回答量:123
采纳率:0%
帮助的人:51.5万
展开全部
struts1你别弄那么复杂的例子测试,要是你对struts1不懂就用一个简单的例子测试,然后再看哪里不会,然后再求助,你这样弄一堆出来了,我们也不知道哪里出错了。我struts1、struts2都学过了,它们流程上还是比较相似的。只是细节上的东西不同。
更多追问追答
追问
这个不是测试,额,之前没学过,自己找了些资料,配置了一个简单的struts1的例子,成功了,然后才去按照成功的去配置新模块的,他们之间的不同在于我测试的简单的例子是进入一个jsp,当文本框的内容为“tom"的时候,跳转到一个成功的页面,否则回到这个页面,这个例子是用form表但的方式提交的,两个例子都放在了包的最外面,以免使问题更加复杂化,我怀疑是路径问题,我的简单的例子如下:放到补充问题中吧
追答
excute中你那个String userno有值么,我学的取值方式不是你这样取的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蓝花梗
2012-07-09 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:102
采纳率:50%
帮助的人:58.4万
展开全部
要写成location.href ='/Task_Action.action?TestNo=1';
写完整路径 ,有后缀.action
更多追问追答
追问
struts1应该写
Task_Action.do吧,也试过了,我这个连接本意是不传值过去,直接执行action到我的action类,然后因为已经登录才能加载这个页面了,说明session里面已经有值了,然后我system.out.print一下,不知道我这个思路对不对,struts1不太熟悉,刚刚学完struts2,到这里还要自学struts1,郁闷啊,我现在传值过去是为了测试一下,是不是我的整体想法的哪个细节违反了struts1的基本原理呢,求高人解救!
追答
额,说实话,我也没学过strut1……有没有报神马错嘛,从错误里面找,把scope的值改成session捏,不用传参捏……不大懂~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式