Code Bye

为什么JSP页面数据传不到actionform?

 

各位大虾:
我的jsp页面语句:
<%String forward=”ScoreManageAction.do?action=ScoreManage”;%>
insDoc(fourthlvl,gLnk(“”R””,”<%=clist.getCourseName()%>”,”<%=forward%>&SplCode=<%=clist.getSplCode()%>”));

在Action中对应语句为
if(mySmaForm.getAction().equals(“ScoreManage”)){
System.out.println(“mySmaForm.getAction() is : “+mySmaForm.getAction());

System.out.println(“mySmaForm.getSplCode() is : “+mySmaForm.getSplCode());

return actionMapping.findForward(“scoreManage”);
}
运行结果是mySmaForm.getAction() is : ScoreManage,即action取到了值ScoreManage
          mySmaForm.getSplCode() is : null,即SplCode没有取到值。

特别说明SplCode=<%=clist.getSplCode()运行正常,因为把鼠标放到该链接上时,能够很清楚的看到链接地址为
ScoreManageAction.do?action=ScoreManage&SplCode=2006,可这个2006就是传不到Action里面去。急啊!
    我建了另一个页面,把forward地址改为scoreManage.jsp?SplCode=2006,再在scoreManage.jsp页面中使用
语句String SplCode=(String)request.getParameter(“SplCode”);可以准确获得这个2006

附:ScoreManageActionForm的部分源程序
public class ScoreManageActionForm extends ActionForm{
private String action;
private String SplCode;
public void setAction(final String action) {
this.action = action;
}

public String getAction() {
return action;
}

public void setSplCode(final String splCode) {
SplCode = splCode;
}

public String getSplCode() {
return SplCode;
}

public ActionErrors validate(final ActionMapping actionMapping,
        final HttpServletRequest httpServletRequest) {
return null;
}

public void reset(final ActionMapping actionMapping,
final HttpServletRequest servletRequest) {
}

}

6分
SqlCode里面是否有中文.? 有的话编下码在执行
没有中文。编译通过的。真是头大,搞不清楚什么情况了。。。字符串action能传过去,其他参数一个传不动。除了这个SplCode还有GrdName。主要目的是想做一个根据专业、年级从数据库里面选取该专业该年级的所有学生列表,结果…基本条件都传不到ScoreManageAction
貌似要用session解决,在Action中加了这样一句话。。。
UserSession myUserSession=new UserSession(servletRequest);
但问题还是没有解决。
6分
你在
<%String forward=”ScoreManageAction.do?action=ScoreManage”;%>
处为什么不写你要传的SqlCode的值?
8分
我觉得你这里写的似乎不对:
<%String forward=”ScoreManageAction.do?action=ScoreManage”;%>
insDoc(fourthlvl,gLnk(“”R””,”<%=clist.getCourseName()%>”,”<%=forward%>&SplCode=<%=clist.getSplCode()%>”));
引用 4 楼 liuxilil 的回复:

你在
<%String forward=”ScoreManageAction.do?action=ScoreManage”;%>
处为什么不写你要传的SqlCode的值?

      因为<%String forward=”ScoreManageAction.do?action=ScoreManage”;%>写在jsp页面的开头,而后一句话insDoc(fourthlvl,gLnk(“”R””,”<%=clist.getCourseName()%>”,”<%=forward%>&SplCode=<%=clist.getSplCode()%>”));是树形结构的一部分,在程序中快到最后,这里显示课程的名称,当用户点这个课程时,就链接到forward所指向的action,
     如果不用forward,直接用链接地址,问题仍然存在。actionform只传递action的值“ScoreManage”,其他参数一概不传

问题已解决,ActionForm做如下改进
public void setSplCode(final String splCode) {
SplCode = splCode;
}
public String getSplCode() {
return SplCode;
}
改为
public void setSplCode(String splCode) {
this.splCode = splCode;
}

public String getSplCode(){
return splCode;
}


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明为什么JSP页面数据传不到actionform?