jsp 下拉框取得数据库的值得问题 在线高分等答复
如题 用的是webwork框架 还有Ibatis在后台的Action 已经将数据库取的值赋到了list中 运行成功的 然后JSP页面想要用webwork的迭代器来讲数据显示出来 可是一直显示不出来 请教一下该怎么改
下面是JSP代码
<td width="38%" class="table-contenttd1" id="myselect">
<select name="userDomain.name" id="name" style="width:150px">
<option selected value="">----------- 全部 -----------</option>
<ww:iterator value="factoryList">
<option value="<ww:property value='name'/>"></option>
</ww:iterator>
</select>
</td>
然后是action的 写在不同的java里 我把相关的方法都贴出来
public String go(){
UserService userService = new UserService();
factoryList= userService.getfactoryListByUser(id);
System.out.println(factoryList);
return "sucsess";
}
public List getfactoryListByUser(Object param){
dao = new IbatisDao();
return dao.queryForList("UserDomain_getfactoryListbyuser_select",param);
}
public List queryForList(String sqlMapId, Object param) {
List list = null;
try {
list = this.getSqlMap().queryForList(sqlMapId, param);
} catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage());
throw new ApplicationException(e.getMessage());
}
if (list == null) {
list = new ArrayList();
}
return list;
}
<sqlMap namespace="UserDomain" >
<select id="UserDomain_getfactoryListbyuser_select" resultClass="string" >
select name from glb
</select>
</sqlMap>
--------------------编程问答--------------------
<ww:iterator value='list' status='status' id='arr'>试试 --------------------编程问答--------------------
<ww:property value='#arr[0]'/> ,<ww:property value='#arr[1]'/>'
</ww:iterator>
是否将list改成我自己的list名就行了 还是要改下其他的 如果是前者的话还是不行 后者就再请教你 --------------------编程问答-------------------- 你先去试试吧 --------------------编程问答-------------------- 你是调用这个方法 public List getfactoryListByUser(Object param){
dao = new IbatisDao();
return dao.queryForList("UserDomain_getfactoryListbyuser_select",param);
}
--------------------编程问答--------------------
试过了 不行的 我对框架不是很熟悉 只是在开头加了 <%@ taglib uri="/webwork" prefix="ww" %>
是否还要添加其他的 比如说调用方法之类的 --------------------编程问答--------------------
对的 能够查询到数据库的数据 但是问题是我想在网页上的下拉框中显示 出来
--------------------编程问答-------------------- 朋友你看下可以换这种方式做吗?
<c:forEach items="${userList}" var="user">
<option value="${user.id}"
<c:if test="${user.id==queryCondition.name}">selected</c:if>>${user.name}</option>
</c:forEach> --------------------编程问答-------------------- 除 --------------------编程问答--------------------
private List list;// 加上对应set/get--------------------编程问答--------------------
list= dao.queryForList("UserDomain_getfactoryListbyuser_select",param);
< ww:property value = "%{list}" />
这些内容是放在何处 能具体点么 谢谢! --------------------编程问答--------------------
private List list;// 加上对应set/get--------------------编程问答-------------------- <option value="值">这里才是显示的内容</option>
UserService userService = new UserService();
list= userService.getfactoryListByUser(id);
System.out.println(list);
return "sucsess";
}
//jsp
<ww:property value = "%{list}" />
这样写如何
<option value="<ww:property value='name'/>"><ww:property value='name'/></option> --------------------编程问答-------------------- 先不说你的TLD文件引的对不对,用发就不对。 --------------------编程问答-------------------- java代码:
<% List<Bean名字> l=request.getAttribute("名字");//你放到共享对象中的名字。Bean名字是你集合中的对 象名
for(Bean名字 ss:l){
%>
<option value="<%=ss%>"><%=ss%></option>
<%}%> --------------------编程问答-------------------- <div>
<div>
<select id="province2" name="province2" >
</select>
<select id="city2" name="city2">
</select>
</div>
<div>
<select id="province3" name="province3" >
</select>
<select id="city3" name="city3">
</select>
<select id="homeTown3" name="homeTown3">
</select>
</div>
<div>
<select id="province4" name="province4" >
</select>
<select id="city4" name="city4">
</select>
<select id="homeTown4" name="homeTown4">
</select>
<select id="town4" name="town4">
</select>
</div>
</div>
<script>
$(function (){
initTwo("地区级联","province2",3,"选择省x","city2","","选择市x");
//initTwo("地区级联","province2","","选择省x","city2","","选择市x");
initThree("地区级联","province3",3,"选择省y","city3","","选择市","homeTown3",13,"选择县");
//initThree("地区级联","province3","","选择省y","city3","","选择市y","homeTown3","","选择县y");
initFour("地区级联","province4",3,"选择省z","city4","","选择市","homeTown4",7,"选择县","town4",10,"选择镇");
//initFour("地区级联z","province4","","选择省z","city4","","选择市z","homeTown4","","选择县z","town4","","选择镇z");
});
</script>
<script type="text/javascript" src="/jslib/dataDictionary.js"></script>
今天刚写的代码,都是对级联的下拉框操作 --------------------编程问答-------------------- /**
* 初始化二级级联
* @param dataDictionaryTypeName 数据字典类别名称
* @param idone 初始化第一个参数的id
* @param valueone 初始化第一个参数的值
* @param aliasone 初始化第一个参数的下拉框的原始值
* @param idtwo 初始化第二个参数的id
* @param valuetwo 初始化第二个参数的值
* @param aliastwo 初始化第二个参数的下拉框的原始值
* @return
*/
function initTwo(dataDictionaryTypeName,idone,valueone,aliasone,idtwo,valuetwo,aliastwo){
$("#"+idone).live("change",function (){
var parentId=this.options[this.selectedIndex].value;
getChangeNextDictionary(parentId,idtwo,aliastwo,option);
});
var list=new Array();
var option;
getOneDictionaryList(dataDictionaryTypeName,idone,valueone,aliasone,option);
getNextDictionaryList(valueone,idtwo,valuetwo,aliastwo,option);
}
/**
* 初始化易做图级联
* @param dataDictionaryTypeName 数据字典类别名称
* @param idone 初始化第一个参数的id
* @param valueone 初始化第一个参数的值
* @param aliasone 初始化第一个参数的下拉框的原始值
* @param idtwo 初始化第二个参数的id
* @param valuetwo 初始化第二个参数的值
* @param aliastwo 初始化第二个参数的下拉框的原始值
* @param idthree 初始化第三个参数的id
* @param valuethree 初始化第三个参数的值
* @param aliasthree 初始化第三个参数的下拉框的原始值
* @return
*/
function initThree(dataDictionaryTypeName,idone,valueone,aliasone,idtwo,valuetwo,aliastwo,idthree,valuethree,aliasthree){
$("#"+idone).live("change",function (){
var parentId=this.options[this.selectedIndex].value;
getChangeNextDictionary(parentId,idtwo,aliastwo,option);
getChangeNextDictionary("",idthree,aliasthree,option);
});
$("#"+idtwo).live("change",function (){
var parentId=this.options[this.selectedIndex].value;
getChangeNextDictionary(parentId,idthree,aliasthree,option);
});
var list=new Array();
var option;
getOneDictionaryList(dataDictionaryTypeName,idone,valueone,aliasone,option);
getNextDictionaryList(valueone,idtwo,valuetwo,aliastwo,option);
getNextDictionaryList(valuetwo,idthree,valuethree,aliasthree,option);
}
/**
* 初始化四级级联
* @param dataDictionaryTypeName 数据字典类别名称
* @param idone 初始化第一个参数的id
* @param valueone 初始化第一个参数的值
* @param aliasone 初始化第一个参数的下拉框的原始值
* @param idtwo 初始化第二个参数的id
* @param valuetwo 初始化第二个参数的值
* @param aliastwo 初始化第二个参数的下拉框的原始值
* @param idthree 初始化第三个参数的id
* @param valuethree 初始化第三个参数的值
* @param aliasthree 初始化第三个参数的下拉框的原始值
* @param idfour 初始化第四个参数的id
* @param valuefour 初始化第四个参数的值
* @param aliasfour 初始化第四个参数的下拉框的原始值
* @return
*/
function initFour(dataDictionaryTypeName,idone,valueone,aliasone,idtwo,valuetwo,aliastwo,idthree,valuethree,aliasthree,idfour,valuefour,aliasfour){
$("#"+idone).live("change",function (){
var parentId=this.options[this.selectedIndex].value;
getChangeNextDictionary(parentId,idtwo,aliastwo,option);
getChangeNextDictionary("",idthree,aliasthree,option);
getChangeNextDictionary("",idfour,aliasfour,option);
});
$("#"+idtwo).live("change",function (){
var parentId=this.options[this.selectedIndex].value;
getChangeNextDictionary(parentId,idthree,aliasthree,option);
getChangeNextDictionary("",idfour,aliasfour,option);
});
$("#"+idthree).live("change",function (){
var parentId=this.options[this.selectedIndex].value;
getChangeNextDictionary(parentId,idfour,aliasfour,option);
});
var list=new Array();
var option;
getOneDictionaryList(dataDictionaryTypeName,idone,valueone,aliasone,option);
getNextDictionaryList(valueone,idtwo,valuetwo,aliastwo,option);
getNextDictionaryList(valuetwo,idthree,valuethree,aliasthree,option);
if(MyJs.isNull(valuetwo)){
getNextDictionaryList("",idfour,valuefour,aliasfour,option);
}else{
getNextDictionaryList(valuethree,idfour,valuefour,aliasfour,option);
}
}
这个是js
补充:Java , Web 开发