日期:2014-05-17  浏览次数:20740 次

struts 2.0 在Action中获得页面传值问题
我的页面部分代码是:

<s:iterator value="page.list" status="index">
  <div>
<input type="checkbox" name="imessageId" value='<s:property value="imessageId"/>' />
<div class="px270 "><a href="#"><s:property value="csubject"/></a></div>
<div class="px120 "><a href="#"><s:property value="csenderUserName"/></a></div>
<div class="px120 "><s:date name="daddDateTime" format="yyyy-MM-dd"/></div>
</div>

</s:iterator>

Action部分代码是:
  private Integer[] imessageId;

public Integer[] getImessageId() {
return imessageId;
}

public void setImessageId(Integer[] imessageId) {
this.imessageId = imessageId;
}

public String divSend() throws Exception {

Integer[] imessageIds = getImessageId();
for(int i=0; i<imessageIds.length; i++){
userMessageService.delete(imessageIds[i]);
  }
return SUCCESS;

}

错误提示:
[17:18:52.937] javax.servlet.ServletException: java.lang.NullPointerException
[17:18:52.937] at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
[17:18:52.937] at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
[17:18:52.937] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
[17:18:52.937] at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:173)
[17:18:52.937] at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
[17:18:52.937] at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:274)
[17:18:52.937] at com.caucho.server.port.TcpConnection.run(TcpConnection.java:514)
[17:18:52.937] at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:520)
[17:18:52.937] at com.caucho.util.ThreadPool.run(ThreadPool.java:442)
[17:18:52.937] at java.lang.Thread.run(Unknown Source)
[17:18:52.937] Caused by: java.lang.NullPointerException

恳请大家帮忙解决,谢谢!

------解决方案--------------------
你都定义了变量 为什么还要用方法来取值 你用Integer[] imessageIds = imessageId;试试
------解决方案--------------------
这个一般都是Integer[] imessageIds 为null造成的,如果用的不是spring的loc,建议用new 方式定义变量。
------解决方案--------------------
探讨
这个一般都是Integer[] imessageIds 为null造成的,如果用的不是spring的loc,建议用new 方式定义变量。

------解决方案--------------------
楼主应该把页面输出贴出来。我就出现过同样的情况,后来发现是页面输出时checkbox根本就不对。