一:打开模态框时showModual()方法并没有提供打开的窗体的title的参数,title要写在打开的模态框的jsp页面的<head></head>的内。
且要把<TITLE></TITLE>标签放在<HEAD></HEAD>中的最上边。
分析:
1 模式窗口比较特殊,所以对于title的位置比较敏感。
2 title标签本来就应该放在<HEAD></HEAD>中的最上边, 只不过普通的
窗口允许或者忽略了title没有放在最上面的错误
二:在做开发时发现了一个问题,如下:
Cannot find bean under name org.apache.struts.taglib.html.BEAN
网络上找的资料如下:
1。试图在Struts的form标记外使用form的子元素。在后面使用Struts的html标记等
2。不经意使用的无主体的标记,如web 服务器解析时当作一个无主体的标记,随后使用的标记都被认为是在这个标记之外的
3。还有就是在使用taglib引入HTML标记库时,你使用的prefix的值不是html
4。property必须和所要提交的action对应的formbean中的某个属性相匹配(必须有一个formbean)
5。要使用标签,外层必须使用标签,不能使用html的
三.关于java引用jar的问题:
1.多工程一起开发时,如果要引用另一个工程的类,可以把另一个工程打成jar包放在发布服务如jboss发布的目录下(如jboss-4.0.5.GA\server\default\lib)下,并在工程代码里引另一个另一个工程,这样,代码就不会报找不到类的错误了。
2.同时,要注意如果不把工程打成jar包,也可以把工程发布的目录放在jboss发布的目录下,在工程里引入这个工程的jar包就可以了。
3.当在本工程与jboss的lib目录有重复的jar包的情况下,运行应用程序就会报错,会的提示类找不到,所以,两个目录只能存在一个jar包。
四:在发送ajax请求时,如果是某个表单的数据量非常大,这时候如果用method:"get"的话,请求会发不到action端,也没有返回结果,这时候需要把method:"get"改为method:"post"就不会了。
五:
本来想在公共的一个工程里写一个jsp,这个jsp里有调用本工程的servlet里的代码,这时候想其它的工程都引用这个jsp,但是出现一个问题:其它工程里认不到这个公共工程里的jsp引入的类。目前,我的做法是每个工程都放置这个引入类。其实最好的办法应该是把这个公共的类生成jar,放在每个工程下,或放在服务器发布的目录下。这点与js不同,公共的js可以放在一个工程下,其它的工程去引用它就好了。
六:
要在jsp里当某些条件符合时显示与不显示,有三种方式:
第一种:可以用struts里的logic标签,如:
<logic:equal name="JSP_USER_CODE" value="12345">...</logic:equal>
第二种:但是用logic时需要把变量放在request、session等预定变量内,如果不想这么做,而只想根据url传的参数来做为判断条件的话,可以用:
jstl标签,如:
url = "/dep_info_frame.jsp?modual=select_users";
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:if test="${param.modual=='select_users'}">...</c:if>
第三种是用<%%>把条件的java代码写在jsp里。如:
<%
if(..){
%>
<span>show if a</show>
<%}else{%>
<span>show if b</show>
<%}%>
七:
在某个页面上如点击如个按钮open出另一个jsp页面,常常在打开的jsp里要去访问按钮所在的jsp的某些元素,这里有个概念很容易误码解,会用:self.parent,其实应该是self.opner。parent,child这些是用在多窗口,多框架里的,而打开另一个窗口,并不存在子父关系,这点需要明白。
八:
在jsp常需要用到清除缓存,这点很重要也很常,可以如下代码:
Java代码
<%
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragrma", "no-cache");
response.setDateHeader("Expires", 0);
%>
九:
对某个元素,当想点击时触发某个事件,且想在鼠标移过去做些样式的变化,可以不用自己写onmouseover,onmouseout来做样式的控制,可以直接用<a>,在<a>的href中也可以执行js,这点可能大家比较不清楚。如下:
Js代码
<a href='javascript:phoneListJs.showTabbarContent("+serial_num+","+cmt+");' style='color:red;'>编辑</a>
十:
从数据库里取出来的字段数据,很经常的值是为空的null,这时候在程序里需要做下判断是否为null,不能就直接拿来处理。比如我在程序中不有判断就用了trim(),这就有异常了。如果想把null或空值转化为默认值,可以用如下方法:
Java代码
public static String replaceIfMissing(String orig,String replacement) throws Exception{
String result = "";
try{
if((orig==null)||(orig.trim().equals(""))){
result = replacement;
}else{
result = orig;
}
}catch(Exception ex){
ex.printStackTrace();
}
return result;
}
十一:
写sql语句时,对于排序,如果某个字段为空,但是也要放在排序的某个位置上,可以用nvl()方法