在我自己的一个struts+spring+ibatis的项目中,想引入sitemesh,进行页面装饰.在按照一些deamo中例子进行配置后,开始了我的登陆页面的试验.
这个页面如果不用decorators进行修饰的时候,是可以正常运行的,用了后,我再进行测试,居然报出了js的错误.说是
找不到function registerUser这个方法.于是edit source,一看,确实把我的script一段代码给删除掉了.让我感觉很奇怪,怎么会删除代码,于是开始找sitemesh的文档,查看是否配置有问题等等.但是一致没有解决方法.
问了我们的一个同事 ,他说sitemesh只是添加代码,而不会去删除代码,你看到的只是表相,一定要抓住真凶.让我感觉很是透彻,so,开始了缉拿凶手的道路,原来是我在我的decrators.xml文件中配置的装饰page中用到了body,同时在我需要被修饰的页面中也引入了body.造成了页面组织的上出现了问题.于是在我的login.jsp中去掉了body标签.一切正常.
原来有的时候,看似很简单的一句话,凝聚了多少的经验..........
<%
@ include file="/common/header.jsp"
%>
< style type ="text/css" >
body{
padding:0;
margin:0;
background:#999;}
.backc{
width:100%;
height:100px;
background:url(images/sw/red-quadrel.jpg) repeat;
}
</ style >
< head ></ head >
< body >
< div class ="backc" ></ div >
< table width ="100%" height ="100%" >
< tr >
< td align ="center" valign ="center" >
< s:form action ="" id ="form1" method ="post" >
< table background ="images/sw/snow.jpg" >
< tr >
< th >< fmt:message key ="pub.register.username" /></ th >< td >< input type ="text" name ="username" ></ td >< td ></ td >< td ></ td >
</ tr >
< tr >
< th >< fmt:message key ="pub.register.password" /></ th >< td >< input type ="password" name ="password" ></ td >< td ></ td >< td ></ td >
</ tr >
< tr >
< td >< input type ="submit" value ="<fmt:message key='button.submit'/>" /></ td >
< td >< input type ="reset" value ="<fmt:message key='button.cancel'/>" /></ td >
< td >< input type ="button" value ="<fmt:message key='button.register'/>" onclick ="registerUser();" /></ td >
</ tr >
</ table >
</ s:form >
</ td >
</ tr >
</ table >
</ body >
< script type ="text/javascript" >
function registerUser(){
var form1 = document.getElementById("form1");
form1.action = "<c:url value='/pub/registerUser.action'/>" ;
form1.submit() ;
}
</ script >
< style type ="text/css" >
body{
padding:0;
margin:0;
background:#999;}
.backc{
width:100%;
height:100px;
background:url(images/sw/red-quadrel.jpg) repeat;
}
</ style >
< head ></ head >
< body >
< div class ="backc" ></ div >
< table width ="100%" height ="100%" >
< tr >
< td align ="center" valign ="center" >
< s:form action ="" id ="form1" method ="post" >
< table background ="images/sw/snow.jpg" >
< tr >
< th >< fmt:message key ="pub.register.username" /></ th >< td >< input type ="text" name ="username" ></ td >< td ></ td >< td ></ td >
</ tr >
< tr >
< th >< fmt:message key ="pub.register.password" /></ th >< td >< input type ="password" name ="password" ></ td >< td ></ td >< td ></ td >
</ tr >
< tr >
< td >< input type ="submit" value ="<fmt:message key='button.submit'/>" /></ td >
< td >< input type ="reset" value ="<fmt:message key='button.cancel'/>" /></ td >
< td >< input type ="button" value ="<fmt:message key='button.register'/>" onclick ="registerUser();" /></ td >
</ tr >
</ table >
</ s:form >
</ td >
</ tr >
</ table >
</ body >
< script type ="text/javascript" >
function registerUser(){
var form1 = document.getElementById("form1");
form1.action = "<c:url value='/pub/registerUser.action'/>" ;
form1.submit() ;
}
</ script >
找不到function registerUser这个方法.于是edit source,一看,确实把我的script一段代码给删除掉了.让我感觉很奇怪,怎么会删除代码,于是开始找sitemesh的文档,查看是否配置有问题等等.但是一致没有解决方法.
问了我们的一个同事 ,他说sitemesh只是添加代码,而不会去删除代码,你看到的只是表相,一定要抓住真凶.让我感觉很是透彻,so,开始了缉拿凶手的道路,原来是我在我的decrators.xml文件中配置的装饰page中用到了body,同时在我需要被修饰的页面中也引入了body.造成了页面组织的上出现了问题.于是在我的login.jsp中去掉了body标签.一切正常.
原来有的时候,看似很简单的一句话,凝聚了多少的经验..........