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

select下拉菜单怎么不能把值传入action?
JSP部分:
  <select id = "sort" onchange='booklistsort.action' name='select_order' size='1' class='list_r_title_ml'>
<option value="" selected="selected">
----请选择排序方式----
</option>
<option value="order by add_time">
上架时间
</option>
<option value="order by product_name">
书名
</option>
<option value="order by dang_price">
价格
</option>
<option value="order by author">
作者
</option>
</select>


java部分:
public class BookListSortAction {
private List<Book> pros;//用于book_list.jsp的右侧产品数据
private String select_order;

public String execute(){
System.out.println("test");
System.out.println(select_order==null);
return null;
}

public List<Book> getPros() {
return pros;
}
public void setPros(List<Book> pros) {
this.pros = pros;
}
public String getSelect_order() {
return select_order;
}
public void setSelect_order(String selectOrder) {
select_order = selectOrder;
}


}

xml配置:
<!-- 图书列表排序 -->
<action name="booklistsort"
class="com.tarena.action.main.BookListSortAction">
<result name="success">/main/book_list.jsp</result>
</action>

运行的时候java部分完全没反应,连"test"都没打印出来。但是也没报错

------解决方案--------------------
是不是没找到action,或者是submit是form中的action中没东西,还有要想获得select中的东西需要使用request,进行获得。struts2?你怎么没有继承Action或者ActionSupport啊
------解决方案--------------------
恩,不是很懂,但你确定这样写onchange就可以传值到action??
------解决方案--------------------
test都没打印,说明没传过去啊。
onchange='booklistsort.action' name='select_order' size='1' 换双引号吧。
还有name 和 id 这个问题最好是相等吧,不然有些匹配id有些匹配name的,搞不清楚了。

------解决方案--------------------
onchange也能像表单一样把请求提交到action? 还真没用过。
也许楼主可以这样:


HTML code


<form name="form1" action="booklistsort.action" method="post">
<select name="select_order" onchange='document.form1.submit()'>
<option value="" selected="selected">
----请选择排序方式----
</option>
<option value="order by add_time">上架时间</option>
<option value="order by product_name">书名</option>
<option value="order by dang_price">价格</option>
<option value="order by author">作者</option>
</select>
</form>