日期:2014-05-20  浏览次数:20889 次

初学struts请教一个问题
JSP页面跟action传值的问题
我JSP想通过字符串的传递不同 在action中接受 从而判断去不同的页面 请问要在action中怎么操作
具体代码如下
jsp页面
<a href='<s:url action="btaction"><s:param name="todo" value="at"></s:param></s:url>' 添加书类</a>
<a href='<s:url action="btaction"><s:param name="todo" value="ab"></s:param></s:url>' 添加新书</a>
action中代码
private List<BookType> listbt;
private BooksDao bd = new BooksDao();
private String todo;
public String execute(){
listbt= bd.bt();
System.out.println(listbt.size());
System.out.println("todo is "+todo);
if(listbt!=null&&listbt.size()>0){
msg="查询成功!";
if("at".equals(todo)){
return "addtype";
}else{
return "addbook";
}
}else{
return "error";
}

}
配置文件中
<action name="btaction" class="com.xmbcit.action.BtAction">
<result name="addtype">/admin/addSuperType.jsp</result>
<result name="addbook">/admin/addBooks.jsp</result>
<result name="error">/admin/addBooks.jsp</result>
</action>

------解决方案--------------------
你的action中是不是没有定义todo的setter/getter方法
------解决方案--------------------
struts2的话可以不设定setter/getter,但是你要接受参数todo要是public类型
------解决方案--------------------
探讨

引用:
struts2的话可以不设定setter/getter,但是你要接受参数todo要是public类型

public String todo;
改成 public 了 还是报空指针异常
System.out.println(listbt.size());
System.out.println("todo is "+todo);
12
……

------解决方案--------------------
把action的完整代码贴出来吧。
应该是set/get上的问题吧。再仔细看看?
------解决方案--------------------
<s:url action="btaction"><s:param name="todo" value="at"></s:param></s:url>
这样需要注入对象
 直接<s:hidden name="todo" > 隐藏传值