菜鸟求助:一个Struts2调用Action问题

不懂游走 2011-12-08 07:09:08
本人菜鸟,问个Struts2调用Action的问题,谢谢了!
我现在有2个页面,A.jsp和B.jsp。我在A页面上通过一个<form action="search.action" method="post"/>标签调用了search.action在数据库中进行查询,将查询的结果以table的形式分页显示在B.jsp这个页面上,我通过B.jsp上的一个一个按钮触发事件,修改了B.jsp这个页面中table里面某行数据对应的在数据库中的记录,我现在想要在B.jsp这个页面上将我刚刚所做的修改体现出来,IE中刷新一下页面可以达到效果,但是会弹出一个提示框

但是这弹框看起来很别扭,我希望通过重新调用之前调用的查询 search.action再查一次,以避免弹出那个提示框。问题来了,我进行查询的时候,<form />中的方法用的是post,通过访问前台后台获取到的调用那个action时的url都不能重新查,


<!-- 以下代码都是在显示查询结果的页面中-->
<!--后台获取到的url -->
<%
String url=request.getScheme()+"://";
url+=request.getHeader("host");
url+=request.getRequestURI();
if(request.getQueryString()!=null)
url+="?"+request.getQueryString();
session.setAttribute("jumpBackUrl",url);
//out.println("后台获取到的url:"+url);
%>

<a href="javascript: jumpTOURL() ;">访问前台获取到的url</a>
<a href="javascript:window.location.href='${sessionScope.jumpBackUrl}' ">访问后台获取到的url</a>

<script type="text/javascript">
function showURL(){
var urlStr = self.location.href ;
//alert(urlStr);
}
<script>

我把<form />里面的method换成get,并在后台将传入的中文参数进行转码,可以通过访问后台获取到的调用那个action时的url再次进行查询以实现“刷新B.jsp并不弹出提示框”的效果,但是朋友跟我说转码的时候有的中文字符能正常转,有的转换完了是乱码,不能进行查询,因此这个方案我也暂时没有采用。


我怎么才能调用刚刚执行的action呢?有没有简便点的方法?或者我想要实现上面所说的效果,有没有别的办法?简便些的
...全文
119 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
不懂游走 2011-12-09
  • 打赏
  • 举报
回复
哦,发帖的时候有一点说错了
我把<form />里面的method换成get,并在后台将传入的中文参数进行转码,通过访问后台获取到的调用那个action时的url尝试重新进行查询这个办法实现不了“刷新B.jsp并不弹出提示框”的效果,显示结果的页面是进去了,但是修改的地方没体现出来,而且在这个url上刷新页面刚才做的修改也不会有所体现怎么搞,谁来救救我啊
不懂游走 2011-12-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lij71 的回复:]

按照你的说法, b页面的列表数据发生改变的时候立即在b页面上显示,是不是?

如果是的话,我觉得你对b页面reload一下就可以了,不需要再去查一次了啊,再查一次的效果和reload是一样的;

如果你只想刷新列表中发生改变的那行(列)数据,那我觉得用ajax技术比较简单。
[/Quote]
reload的话会导致IE弹出上面那个刷印页面的提示框啊,我现在就是不想让它弹框
另外,我的显示查询结果的页面是这么显示的


<!-- 表格 -->
<table class="table">
<tr>
<th style="{width:20%;}">图书编号</th>
<th style="{width:6%;}">题名</th>
<th style="{width:9%;}">作者</th>
<th style="{width:9%;}">主题词</th>
<th style="{width:6%;}">索书号</th>
<th style="{width:9%;}">ISBN</th>
<th style="{width:4%;}">语言</th>
<th style="{width:8%;}">出版社</th>
<th style="{width:6%;}">标价</th>
<th style="{width:7%;}">藏书处</th>
<th style="{width:6%;}">预约借书</th>
<c:if test="${sessionScope.user=='worker2'}">
<th style="{width:7%;}">修改图书信息</th>
</c:if>
</tr>
<c:forEach items="${sessionScope.tmpPageBean.list}" var="books" varStatus="st">
<tr>
<td>${books.BUuid }</td>
<td>${books.BName }</td>
<td>${books.BAuthor }</td>
<td>${books.BKeyword }</td>
<td>${books.BCall }</td>
<td>${books.BIsbn }</td>
<td>${books.BLanguage }</td>
<td>${books.BPress }</td>
<td>${books.BValue }</td>
<td>${books.BLocate }</td>
<td style="{text-align: center;}"> 
<c:if test="${1==books.BIsborrowable}">
<a href="http://192.168.0.23:8080/MyLibrary/makeAppointment.action?BUuid=${books.BUuid}"
onclick="return(confirm('预约前请先了解预约规则,\n确实要进行预约么?'))">预约此书</a>
</c:if>
</td>
<c:if test="${sessionScope.user=='worker2'}">
<td style="{text-align: center;}">
<a href="#" onclick="edit('${books.BUuid }')">编辑</a>
<input type="button" onclick="edit('${books.BUuid }')" value="编辑"/>
</td>
</c:if>
</tr>
</c:forEach >

<!-- 页码 -->
<tr><td colspan="13" style="{text-align:right;}">
<%
PageBean myPageBean=(PageBean)session.getAttribute("tmpPageBean");
int totalPage=myPageBean.getTotalPage();
int currentPage=myPageBean.getCurrentPage();
int i=0;
%>

<c:if test="${sessionScope.tmpPageBean.currentPage!=1}">
<a href="http://192.168.0.23:8080/MyLibrary/jumpPage.action?page=1">[首页]</a>
<a href="http://192.168.0.23:8080/MyLibrary/jumpPage.action?page=${sessionScope.tmpPageBean.currentPage-1}">[上一页]</a>
</c:if>
<!-- 第一页到当前页 -->
<%
for(;i<currentPage-1;i++){
%>
<a href="http://192.168.0.23:8080/MyLibrary/jumpPage.action?page=<%= i + 1%>"><%=i + 1%></a>
<%
}
%>
<!-- 当前页 -->
<%= currentPage%>
<!-- 当前页到最后一页 -->
<%
for(i=currentPage;i>=currentPage&&i<totalPage;i++){
%>
<a href="http://192.168.0.23:8080/MyLibrary/jumpPage.action?page=<%= i + 1%>"><%=i + 1%></a>
<%
}
%>

<c:if test="${sessionScope.tmpPageBean.currentPage!=sessionScope.tmpPageBean.totalPage}">
<a href="http://192.168.0.23:8080/MyLibrary/jumpPage.action?page=${sessionScope.tmpPageBean.currentPage+1}">[下一页]</a>
<a href="http://192.168.0.23:8080/MyLibrary/jumpPage.action?page=${sessionScope.tmpPageBean.totalPage}">[尾页]</a>
</c:if>

<br> 共找到${sessionScope.tmpPageBean.allRow}条记录, 当前显示第${sessionScope.tmpPageBean.currentPage}页

</td></tr>
</table>

我想要刷新列表中发生改变的那行数据,怎么才能获取到我要刷新的元素的ID啊

lij71 2011-12-08
  • 打赏
  • 举报
回复
按照你的说法, b页面的列表数据发生改变的时候立即在b页面上显示,是不是?

如果是的话,我觉得你对b页面reload一下就可以了,不需要再去查一次了啊,再查一次的效果和reload是一样的;

如果你只想刷新列表中发生改变的那行(列)数据,那我觉得用ajax技术比较简单。
不懂游走 2011-12-08
  • 打赏
  • 举报
回复
我晕,图片怎么没显示
我传到我空间的相册里了啊
http://hi.csdn.net/space-4423798-do-album-id-112955.html



<img src='http://hi.csdn.net/attachment/201112/8/4423798_1323341393wTrX.gif'/>

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧