读书人

JAVA JSP中查询和刷新在同一个页面中

发布时间: 2012-07-28 12:25:13 作者: rapoo

JAVA JSP中查询和刷新在同一个页面中,点击查询怎么保留查询条件
这是jsp


<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/commons/taglibs_new.jsp"%>
<html>
<head>
<title>页面展示</title>
<script>
//页面展示
function query(){
with(document.forms[0]){
operAtt.value="query";
pages.value="";
Submit();
}
}
//新增记录
function add(){
location="${ctx}/CcGuarinfoAction.do?operAtt=add";
}
//修改记录
function edit(guarNo,guarType) {
location = "${ctx}/CcGuarinfoAction.do?operAtt=edit&ccGuarinfoDomain.guarNo="+guarNo+"&ccGuarinfoDomain.guarType="+guarType;
}
//删除一条记录
function delete1(guarNo,guarType){
if(confirm("确定要删除吗?")){
location="${ctx}/CcGuarinfoAction.do?operAtt=delete1&ccGuarinfoDomain.guarNo="+guarNo+"&ccGuarinfoDomain.guarType="+guarType;
}
}

//选中在页面需要删除的记录

function deleteMore(){
if(confirm("确定要删除吗?")){
with(document.forms[0]){
operAtt.value="deleteMore";
var check = document.getElementsByName("list_check");
var delstr="";
for(var i=0;i<check.length;i++){
if(check[i].checked){
delstr+= ":"+check[i].value;
}
}
delstr= delstr.substring(1,delstr.length);
delParam.value = delstr;
document.forms[0].Submit();
}
}
}
//查看信息

function showDetail(guarNo,guarType){
location="${ctx}/CcGuarinfoAction.do?operAtt=search&ccGuarinfoDomain.guarNo="+guarNo+"&ccGuarinfoDomain.guarType="+guarType;
}

</script>
</head>
<body>
<form action="${ctx}/CcGuarinfoAction.do" method="post" >
<input type="hidden" id="operAtt" name="operAtt" >
<input type="hidden" id="pages" name="pages">
<input type="hidden" name="delParam" id="delParam">
<p:pagelayout>
<p:searchlayout>
<p:messages/>
<table class="mainstyle">
<tr>
<th>编号</th>
<td>
<input name="ccGuarinfoDomain.guarNo" type="text" value="${ccGuarinfoDomain.guarNo}"/>
</td>
<th>类型代码</th>
<td>
<input name="ccGuarinfoDomain.guarType" type="text" value="${ccGuarinfoDomain.guarType}"/>
</td>
</tr>
</table>
</p:searchlayout>
<p:searchtblayout>
<a class="button" href="#" onclick="javascript:query()"><span>开始检索</span></a>
<a class="button" href="#" onclick="resetForm()"><span>重 置</span></a>
</p:searchtblayout>
<p:panelbar>
<a class="addicon" href="#" onclick="javascript:add();return false;">添加</a>
<a class="delicon" href="#" onclick="javascript:deleteMore();return false;">选择删除</a>
</p:panelbar>
<p:pageclayout>
<div id="ptdiv" class="pageContent" fixtitle="true">
<table class="resultlst1" fixtitle="true" >
<tr>
<th width="5%" title="全选"><input id="checkAll" type="checkbox"/>全选</th>
<th nowrap="nowrap" width="10%">编号</th>
<th nowrap="nowrap" width="10%">类型</th>


<th nowrap="nowrap" width="20%">名称</th>
<th nowrap="nowrap" width="10%">所有者</th>
<th nowrap="nowrap" width="20%">操作</th>
</tr>
<logic:notEmpty name="data">
<logic:iterate id="list" name="data">
<tr>
<td><input name="list_check" value="${list.guarNo },${list.guarType}" class="checkSelector" chkflg="n" type="checkbox"/></td>
<td>

<bean:write name="list" property="guarNo" />

</td>
<td>
<bean:write name="list" property="guarType" />
</td>
<td>
<bean:write name="list" property="guarName" />
</td>
<td>
<bean:write name="list" property="guarOwner" />
</td>
<td>
<a class="editicon" href="#" onclick="javascript:edit('${list.guarNo }','${list.guarType}')" > 修改</a>
<a class="delicon" href="#" onclick="javascript:delete1('${list.guarNo }','${list.guarType}')" > 删除</a>
<a class="defaulticon" href="#" onclick="javascript:showDetail('${list.guarNo }','${list.guarType}')"> 查看</a>
</td>
</tr>
</logic:iterate>
</logic:notEmpty>



</table>
</div>
</p:pageclayout>
<p:footercon/>
</p:pagelayout>

</form>
</body>
</html>

[解决办法]
在action里把查询的条件保存到session里,然后返回到页面。
[解决办法]
从你页面上看,已经在查询条件中有value="${ccGuarinfoDomain.guarType}",所以只要action中创建ccGuarinfoDomain对象,并把它保存到request作用域即可,同时我还有点疑问,既然楼主已经想到用EL来保存查询条件,难道没在anction中处理吗
[解决办法]
${ctx}/CcGuarinfoAction.do接收
ccGuarinfoDomain.guarNo和ccGuarinfoDomain.guarType这2个参数,接收参数后声明一个ccGuarinfoDomain对象,用set方法把guarNo和guarType这2个属性添加到ccGuarinfoDomain对象中,用request.setAttribute("ccGuarinfoDomain",ccGuarinfoDomain);传递对象

在jsp 中 ccGuarinfoDomain cc = (ccGuarinfoDomain)request.setAttribute("ccGuarinfoDomain");获得对象

[解决办法]

探讨
在action里把查询的条件保存到session里,然后返回到页面。

[解决办法]
探讨
Java code

String guarNo= request.getParameter("ccGuarinfoDomain.guarNo");
String guarType=request.getParameter("ccGuarinfoDomain.guarType");
CcGuarinfoDomain ccGuarinfoDomain = new CcGuarinfoDoma……

[解决办法]
value="${ccGuarinfoDomain.guarNo}"
改为value="${ccGuarinfoForm.ccGuarinfoDomain.guarNo}"
[解决办法]
第一种,LZ可以考虑用ajax异步请求,只刷新查询出来的数据,下面是我用的一种,ajax提交查询后在页面拼接数据,这种方法只刷新数据部分,不会刷新整个页面,具体ajax方法就看你框架里的怎么用的了。
$.ajax({
type: "post",
url: "/yoblhtjfx/queryGoodsAjax.action",
data: "goods="+goods+"&jsoncallback=?",


dataType: "json",
success: function(json)
{
var tableHTML="";

tableHTML+="<table id='tabb1' border='1' width='100%'>";
tableHTML+="<tr>";
tableHTML+="<td style='text-align: center' >选择</td>";
tableHTML+="<td style='text-align: center' >商品代码</td>";
tableHTML+="<td style='text-align: center' >商品名称</td>";
tableHTML+="<td style='text-align: center' >单位</td>";
tableHTML+="</tr>";
var list = json.list;
for(var i=0;i<list.length;i++)
{
tableHTML+="<tr>";
tableHTML+="<td style='text-align: center'><input type='radio' class='inputRadio collection' name='radioo' value='"+list[i][0]+'@'+list[i][1]+'@'+list[i][2]+"'/></td>";
tableHTML+="<td style='text-align: center'>"+list[i][0]+"</td>";
tableHTML+="<td style='text-align: center'>"+list[i][1]+"</td>";
tableHTML+="<td style='text-align: center'>"+list[i][2]+"</td>";
tableHTML+="</tr>";
}
tableHTML+="</table>";

$("#querygoodsdiv").html(tableHTML);
}

});

第二种,像上面的所说的,在action里面定义变量,接受查询条件的值,然后页面上用${变量名}就可以取到。

读书人网 >Java Web开发

热点推荐