一 、 用struts2标签的<s:select来显示
<s:select cssStyle="width: 84%" list="#application.officeList" headerKey="" headerValue="--请选择--" listKey="#this.value" listValue="#this.key+'.'+#this.value" name="entity.officeName" value="entity.officeName"/>
其中
1、list是接收java类或者在启动时就已经加载的application中的list列表值 ;
2、listKey的值是select的值;
3、listValue的值是相当于<select中显示出来的text;
4、value是java类中传来的值,用来与select列表中的option的id值做对比
二 、用<select 来显示从java类端传过来的List列表中的选项
<select name="entity.officeName">
<option value="">--请选择--</option>
<s:iterator value="#application.officeList" id="bean">
<option value="${bean.value}" <s:if test='#bean.key==entity.officeName'>selected</s:if> >${bean.key}.${bean.value}</option>
</s:iterator>
</select> ......
<script language="javascript">
function window.onunload(){
//所有窗口关闭
if((window.screenLeft>=10000 && window.screenTop>=10000) || event.altKey)
{ //点击右上角的窗口关闭
alert("aaaaaaaaaaaaaaaaaa");
}
}
</script> ......
title: JSP分页技术实现
summary:使用工具类实现通用分页处理
author: evan_zhao
email: evan_zhao@hotmail.com
目前比较广泛使用的分页方式是将查询结果缓存在HttpSession或有状态bean中,翻页的时候从缓存中取出一页数据显示。这种方法有两个主要的缺点:一是用户可能看到的是过期数据;二是如果数据量非常大时第一次查询遍历结果集会耗费很长时间,并且缓存的数据也会占用大量内存,效率明显下降。
其它常见的方法还有每次翻页都查询一次数据库,从ResultSet中只取出一页数据(使用rs.last();rs.getRow()获得总计录条数,使用rs.absolute()定位到本页起始记录)。这种方式在某些数据库(如oracle)的JDBC实现中差不多也是需要遍历所有记录,实验证明在记录数很大时速度非常慢。
至于缓存结果集ResultSet的方法则完全是一种错误的做法。因为ResultSet在Statement或Connection关闭时也会被关闭,如果要使ResultSet有效势必长时间占用数据库连接。
因此比较好的分页做法应该是每次翻页的时候只从数据库里检索页面大小的块区的数据。这样虽然每次翻页都需要查询数据库,但查询出的记录数很少,网络传输数据量不大,如果使用连接池更可以略 ......
String url="http://www.baidu.com";
ActionForward gotourl = new ActionForward(url);
gotourl.setPath(url);
gotourl.setRedirect(true);
return gotourl;
1.RequestDispatcher.forward()
是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Servlet,JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在 b.jsp都可以获得,参数自动传递.
但forward()无法重定向至有frame的jsp文件,可以重定向至有frame的html文件,同时forward()无法在后面带参数传递,比如servlet?name=frank,这样不行,可以程序内通过response.setAttribute("name",name)来传至下一个页面.
重定向后浏览器地址栏URL不变.
例:在servlet中进行重定向
Java代码
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
{
response.setContentType("text/html; char ......
JSP中的跳转:
(1). forward()方法
使用到javax.servlet.RequestDispatcher类
RequestDispatcher rd = getServletContext().getRequestDispatcher("url");
rd.forward(requestVar,requestVar); //传递servlet的入口参数
/*forward函数已经把原页面的request,response对象传入新的页面,因此这新旧页面拥有相同的request,response对象。request.getparameter("var")就可以得到相应的值.*/
/*forward()是直接在server做的,浏览器并不知道,也不和浏览器打交道,浏览器的地址不变化。*/
即:
getServletContext().getRequestDispatcher("url").forward(requestVar,responseVar);
服务器端Servlet进行转向的4种方法:
1.ServletContext的getRequestDispatcher()
2.ServletContext的getNamedDispatcher()
3.ServletRequest的getRequestDispatcher()
& ......
在MyEclipse中开发WEB应用时经常要创建JSP文件,但是每次MyEclipse都会用默认的MyEclipse Visual JSP Designer,打开速度非常慢,而且基本上也用不到这个可视化的JSP编辑器,多半都是使用MyEclipse JSP Editor,所以,有必要把默认的JSP文件编辑器改成MyEclipse JSP Editor,方便使用,也可以节省打开时间.
>>修改方法>>:
依次打开如下菜单和选项:
Windows->Preferences->General->Editors->File Associations.
在文件关联对话框中,可以看到File Types文件类型列表,选中*.jsp,然后在下面的Associated Editors列表框中选中MyEclipse JSP Editor,最后,单击右边的default按钮就行了。
这时,你可以看到MyEclipse JSP Editor被移到了第一个位置,最后单击OK按钮就可以使用MyEclipse JSP Editor打开JSP页面了。
其他的文件默认编辑器修改方式跟这个操作是一样的,比如,你也可以修改默认的HTML文件的默认打开编辑器。 ......