日期:2014-05-18  浏览次数:20704 次

关于strust2参数传递的问题
本帖最后由 u012677436 于 2014-01-24 20:08:16 编辑
搭完顶目后,发现无论是post还是get方式从页面传到服务器的参数,action中都没办法获取, debug看了,在栈顶上. action的属性都初始化了.都有默认值(String 的是null int的是0) . 但在执行 action的方法时.却还是默认值.,不是理论上传进来的参数值..
action属性都提供了getter/setter方法.

例如:
我的URL 是 selectNotice.action?pageModel.pageIndex=10
到action的selectNotice方法时 pageModel是NULL.连notice也是null的
我贴一部份代码:
strust_notice.xml

<struts>

    <package name="notice" namespace="/notice" extends="hrm">
        <!-- 按条件分页查询公告 -->
        <action name="selectNotice" class="com.bing.hrm.action.notice.NoticeAction" method="selectNotice">
         <result name="success">/WEB-INF/jsp/notice/notice.jsp</result>
        </action>
        
    </package>

</struts>

NoticeAction.java


public class NoticeAction extends AbstractAction {

private static final long serialVersionUID = -4047001258498002589L;
/** 查询条件 */
private Notice notice;
/** 分页的结果 */
private List<Notice> notices;
/** 定义分页实体 */
private PageModel pageModel = new PageModel();

/** 按条件分页查询公告 */
public String selectNotice() {
try{

notices = hrmService.getNoticeByPage(notice, pageModel);
}catch(Exception ex){
log(ex);
ex.printStackTrace();
}
return SUCCESS;
}
        /** setter and getter method */
public Notice getNotice() {
return notice;
}
public void setNotice(Notice notice) {
this.notice = notice;
}
public List<Notice> getNotices() {
return notices;
}
public void setNotices(List<Notice> notices) {
this.notices = notices;
}
public PageModel getPageModel() {
return pageModel;
}
public void setPageModel(PageModel pageModel) {
this.pageModel = pageModel;
}
}


PageModel.java

public class PageModel {
/** 默认每页显示的记录条数 */
private static final int PAGE_SIZE = 2;

/** 当前页码 */
private int pageIndex;
/** 每页显示的数量 */
private int pageSize;
/** 总记录条数 */
private int recordCount;

/** setter and getter method */
public int getPageIndex() {
return pageIndex < 1 ? 1 : pageIndex;
}
public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
}
public int getPageSize() {
return pageSize <= 0 ? PAGE_SIZE : pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public