[info]说一下拼接遇到的坑,记住如果元素在页面初始化的时候不存在,而是之后通过动态生成在页面中的,要对这些元素进行操作,例如 click, blur, keyup, change….,要使用 live (jquery 1.7.2 之后的版本不建议使用 live) 或 on。[/info]
1.拼接html语句
[sourcecode language=”html” title=””]
<script type="text/javascript" src="/LeaveSystem/js/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
function SchoolApp(参数1,参数2,参数3,参数4){
//执行的代码,这里没有用到jquery,直接用js语句了
}
var s = "";
s ='<tr><td align="center"><input type="button" value="任命" onclick=SchoolApp("’+参数1+’","’+参数2+’","2","’+参数3+’","’+参数4+’")></td></tr>’; //拼接的html语句,注意单引号和双引号的位置
$("#CollegeTeacher").append(s); //拼接到S标签对里面
</script>
[/sourcecode]
2.from表单可以采用ajax提交直接序列化
[sourcecode language=”html” title=””]
$("#eclassform").submit(function() {
var obj = $(this).serialize();//序列化当前单击事件的表单
$.ajax({
type:"get",
url:"",
data: obj,//传输参数,注意表单的name和value
dataType:"text",
success:function(data){
alter(data);
},
error:function(){
alert("系统异常,请稍后重试!");
}
});
[/sourcecode]
3.还有就是XML的注释的问题。
如果直接建servlet,系统生成映射的时候,会自动格式化xml文件。不光删除注释,还会把所有空行都删除。如果你非得在xml文件中写注释,那么,你只能手动建一个类,继承httpservlet类,然后再手动写映射,而且永远不能在这个工程当中直接建servlet,否则会一朝回到解放前。附:servlet标签里面有一个description标签,你可以把想写的修饰写到这里面来,虽然看着不如servlet标签外面变颜色的注释爽,但是至少不会被删除。
4.web单个jsp不需要过滤方法
通过filter的判断访问的地址进行放行
request.getServletPath().indexOf(“login.jsp”)
5.String转化为int类型的方法
Integer.parseInt();
6.判断字符串是否为数字的方法。
[sourcecode language=”java” title=””]
public static boolean isInteger(String str) {
Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
return pattern.matcher(str).matches();
}
[/sourcecode]
7.filter拦截器不能注入Bean的解决办法。
[sourcecode language=”java” title=””]
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();//通过ContextLoader获取上下文
IStudentService studentService=(IStudentService)wac.getBean("studentService");
[/sourcecode]
8.缺少jar包导致的报错
错误提示:java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher
原因:除了json-lib-2.2-jdk15.jar包之外还有几个依赖包:commons-beanutils.jar,commons-httpclient.jar,commons-lang.jar,ezmorph.jar,morph-1.0.1.jar。
9.拦截器放行文件夹或者页面。
放行文件夹:request.getServletPath().indexOf(“gxksyb”)>=0
拦截放行页面:request.getRequestURI().substring(request.getContextPath().length()).equals(“/error.jsp”)
10.hql语句中运行警告。
警告内容:use named parameters or JPA-style positional parameters instead.
主要是String hql=”from Eclass s where s.name=?”;标记占位符的方法在官网后期可能会出去这样的标记,因为在query.setParameter( i, param[i]);采用了变量,所以没有啥解决办法,只能无视警告。