1.传入数据的表单中的声明 :<form method="post" action="/Unity3DHouse4/searchBuildingInfo.do?method=searchBuildingInfoBy2">
<table width="700" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="10"> </td>
<td width="220"><label>楼盘ID:
<input type="text" name="buildingId" />
</label></td>
<td width="220"><label>楼盘类型:
<input type="text" name="projectType" />
</label>
</td>
<td ></td>
<td > </td>
<td > </td>
<td width="40"><label>
<input name="Submit" type="submit" value="查找" />
</label></td>
</tr>
</table>
</form>
2.在form-bean中:
<form-bean name="buildingInfoForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="projectId" type="java.lang.Integer" />
//提交时为Integer类型数据,但是这里没有使用form-bean来读取数据。
<form-property name="projectName" type="java.lang.String" />
<form-property name="projectType" type="java.lang.String" />
<form-property name="projectAddress" type="java.lang.String" />
<form-property name="houseType" type="java.lang.String" />
<form-property name="houseNumber" type="java.lang.Integer" />
<form-property name="priceRange" type="java.lang.String" /> <!-- 为请求的过程中产生的form模型 -->
<form-property name="paidWay" type="java.lang.String"/>
<form-property name="salesAddress" type="java.lang.String"/>
<form-property name="telephone" type="java.lang.String"/>
</form-bean>
3.在action方法中:
public ActionForward searchBuildingInfoBy2(ActionMapping mapping, ActionForm form,//1.结合输入时的form处理
HttpServletRequest request, HttpServletResponse response){
// DynaActionForm buildingForm = (DynaActionForm) form;
// String buildingId = buildingForm.getString("buildingId");//但是它是一个String类型的数
String buildingId=request.getParameter("buildingId");//能够读取Integer型数据,当然因为text类型传入都是String类型。
//String projectType =buildingForm.getString("projectType");
String projectType=request.getParameter("projectType");
/* Map<String,String> map = new HashMap<String,String>();
map.put("buildingId", buildingId); //终于找到了,这里出错,没有将变量正确的存储
//1.没有读取相关的form request数据
map.put("projectType", projectType);
*/
//在此处调用的时候,没有使用强制转换为Integer类型。
List<Buildinginfo> list = buildingInfoDao.findBy2(buildingId,projectType);
request.setAttribute("buildingInfoBy2", list); //4.将其存入到houseInfo链表对象中
return mapping.findForward("searchBuildingInfoBy2");//4.返回到页面标志searchBuildingInfoBy2
}
}
4.在dao类方法中:
public List<Buildinginfo> findBy2(String buildingId,String projectType){//同样对其为String类型的。
//List<Buildinginfo> list=null; //buildingId出错
//String buildingId=map.get("buildingId");
//在前面存入后,通过 List<Course> clist = courseDao.findBySearch(map);又可以将其取出。
//String projectType=map.get("projectType");
if(!buildingId.equals("")&&!projectType.equals("")){
//在HQL语句中都可以成功的调用。 因为查询库时可以用‘ ’对于Integer数据查询。
Query q = getSession().createQuery("FROM Buildinginfo WHERE buildingId=? AND projectType=?");
q.setString(0, buildingId);
//q.setString(1, tchName);
q.setString(1, projectType);
List<Buildinginfo> list1 = q.list();
return list1;
}
else if( !buildingId.equals("")&&projectType.equals("" )){ //对其判断是也是使用了String类型的方法
Query q = getSession().createQuery("FROM Buildinginfo WHERE buildingId=? ");
q.setString(0, buildingId);
//q.setString(1, tchName);
List<Buildinginfo> list2 = q.list();
return list2;
}
else if(buildingId.equals("")&&!projectType.equals("")){
Query q = getSession().createQuery("FROM Buildinginfo WHERE projectType=?");
//q.setString(0, loginAccount);
//q.setString(1, tchName);
q.setString(0, projectType);
List<Buildinginfo> list3 = q.list();
return list3;
}
else{
Query q = getSession().createQuery("FROM Buildinginfo");
List<Buildinginfo> list4 = q.list();
return list4;
}
}
Struts表单提交的text String数据可以作为HQL中的Integer类型处理
最新推荐文章于 2016-12-18 23:00:19 发布