2013-10-12 39 views
0

我有JSP loginSuccess.jsp如下:Struts 2的jQuery插件不工作

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<%@ taglib prefix="s" uri="/struts-tags"%> 
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%> 
<html> 

<head> 
<s:head /> 
<sj:head /> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<link rel="stylesheet" type="text/css" href="style.css" media="all" /> 
<title>Login</title> 
</head> 
<body> 
    <div id="MainPage"> 
     <jsp:include page="header.jsp"></jsp:include> 
     <jsp:include page="menubaruser.jsp"></jsp:include> 
     <div id="mainContent" > 
      <div style="width:898px"><br><center>Welcome Mr. <b><s:property value="#session.name"/> </b></center> </div> 
      <div id="ajaxdiv"> 
      <div id="ContentLeft"> 
       <jsp:include page="search.jsp"></jsp:include> 
      </div> 
      <div id="contentRight"> 
       <jsp:include page="topdeals.jsp"></jsp:include> 
      </div> 
      </div> 
      <br> 
      <div> 
       <jsp:include page="userHistoryWidget.jsp"></jsp:include> 
      </div> 
     </div>  
     <jsp:include page="footer.jsp"></jsp:include> 
    </div> 
</body> 
</html> 

本頁面包括許多小部件,其中兩個是search.jsp的和userHistoryWidget.jsp。現在,當我運行這個頁面時,一切都很好,但jQuery的datepicker標記不起作用。我的意思是日曆不顯示。如果我從loginSuccess.jsp中刪除頭標記,那麼datepicker開始工作,但隨後在userHistoryWidget.jsp中發送異步請求的提交按鈕停止工作。他們不響應點擊。 userHistoryWidget.jsp如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<%@ taglib prefix="s" uri="/struts-tags"%> 
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%> 
<html> 
<head> 
<s:head /> 
<sj:head /> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<link rel="stylesheet" type="text/css" href="style.css" media="all" /> 
</head> 
<body> 


    <div id="searchHeaderHistory">User History</div> 



    <div class="CSSTableGenerator"> 
     <table> 
      <colgroup> 
       <col span="1" style="width: 5%;"> 
       <col span="1" style="width: 10%;"> 
       <col span="1" style="width: 8%;"> 
       <col span="1" style="width: 15%;"> 
       <col span="1" style="width: 15%;"> 
       <col span="1" style="width: 6%;"> 
       <col span="1" style="width: 6%;"> 
       <col span="1" style="width: 17%;"> 
       <col span="1" style="width: 18%;"> 
      </colgroup> 

      <tr> 
       <td>Ticket ID</td> 
       <td>Booking Date</td> 
       <td>Flight ID</td> 
       <td>From</td> 
       <td>To</td> 
       <td>Total Fare</td> 
       <td>Net Fare</td> 
       <td></td> 
       <td></td> 
      </tr> 

      <s:iterator value="ticketsList" var="ticket" status="stat"> 

       <tr> 
        <td align="center"><s:property value="#ticket.tid" /></td> 
        <td align="center"><s:property value="#ticket.bookingdate" /></td> 
        <td align="center"><s:property 
          value="#ticket.scheduleDetails.flightDetails.fid" /></td> 

        <s:if test="#ticket.flag==3"> 
         <td><s:property 
           value="#ticket.scheduleDetails.flightDetails.routeDetails.via" /><br> 
          <s:property value="#ticket.scheduleDetails.via_dep_date" />&nbsp;<s:property 
           value="#ticket.scheduleDetails.via_dep_time" />hrs</td> 
        </s:if> 
        <s:if test="#ticket.flag==1 ||#ticket.flag==2||#ticket.flag==4"> 
         <td><s:property 
           value="#ticket.scheduleDetails.flightDetails.routeDetails.source" /><br> 
          <s:property value="#ticket.scheduleDetails.source_dep_date" />&nbsp;<s:property 
           value="#ticket.scheduleDetails.source_dep_time" />hrs</td> 
        </s:if> 
        <s:if test="#ticket.flag==1 ||#ticket.flag==2||#ticket.flag==3"> 
         <td><s:property 
           value="#ticket.scheduleDetails.flightDetails.routeDetails.destination" /><br> 
          <s:property value="#ticket.scheduleDetails.dest_arr_date" />&nbsp;<s:property 
           value="#ticket.scheduleDetails.dest_arr_time" />hrs</td> 
        </s:if> 
        <s:if test="#ticket.flag==4"> 
         <td><s:property 
           value="#ticket.scheduleDetails.flightDetails.routeDetails.via" /><br> 
          <s:property value="#ticket.scheduleDetails.via_arr_date" />&nbsp;<s:property 
           value="#ticket.scheduleDetails.via_arr_time" />hrs</td> 
        </s:if> 
        <td align="center"><s:property value="#ticket.fare" /></td> 
        <td align="center"><s:property value="#ticket.dealFare" /></td> 
        <td style="width: 150px" align="center"> 
         <s:url id="getPassengers" value="/getPassengers.action"> 
          <s:param name="Tid" value="#ticket.tid" /> 
         </s:url> 
         <sj:a id="link_%{#stat.index}" href="%{getPassengers}" targets="ajaxdiv" cssClass="orangebuttonsmall"> 
           View Details  
         </sj:a> 
        </td> 
        <td style="width: 150px" align="center"> 
         <s:a action="cancel" id="button1" style="float:left" cssClass="orangebuttonsmall">Cancel Ticket 
          <s:param name="Tid" value="#ticket.tid"></s:param> 
         </s:a> 
        </td> 
       </tr> 
      </s:iterator> 

     </table> 
    </div> 
</body> 
</html> 

search.jsp的情況如下:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<%@ taglib prefix="s" uri="/struts-tags"%> 
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%> 
<html> 
<head> 
<s:head /> 
<sj:head /> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 

<link rel="stylesheet" type="text/css" href="style.css" media="all" /> 
<link rel="stylesheet" 
    href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" /> 
<script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> 

<script> 
    $(function() { 
     $("#datepicker").datepicker(); 
    }); 
</script> 


<title>Search</title> 
</head> 
<body> 
    <s:form action="searchFlight" method="post" theme="css_xhtml" cssClass="form1small"> 
     <div class="searchHeadersmall">Search Flight</div> 
     <div id="searchForm1"> 
      <s:select list="cityList" headerValue="--------Select--------" headerKey="-1" 
       name="searchFlightDetails.from" label="Leaving From"></s:select> 
      <s:select list="destlist" headerValue="---------Select-------" headerKey="-1" 
       name="searchFlightDetails.to" label="Going To"></s:select> 
      <s:textfield label="Date" name="searchFlightDetails.date_of_travel" 
       id="datepicker" /> 
      <s:select list="#{'1':'1','2':'2','3':'3','4':'4','5':'5'}" 
       headerValue="" headerKey="-1" 
       name="searchFlightDetails.no_of_passengers" label="No of tickets" 
       style="width:50%; float:left"></s:select> 
      <div class="inputsmall nobottombordersmall"> 
       Type &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 
       <s:radio label="Type" name="searchFlightDetails.nonstop" 
        list="#{'Y':'NonStop','N':'Normal'}" theme="simple" /> 
      </div> 
      <div id="submitdivid1"> 
       <sj:submit id="submitsearch" value="Show Flights" targets="mainContent"/> 
      </div> 
     </div> 
    </s:form> 
</body> 
</html> 

有人可以幫我解決這個問題呢?在此先感謝..

+2

[Struts2&SJ插件示例](https://github.com/coding-idiot/Struts2-Examples) –

+0

@coding_idiot:很棒的東西,你應該垃圾你的收藏,我見過比官方更好的例子一個...... –

+0

我在2年前的時候寫過他們,當時我正在學習。直到最近我意識到官方的東西還不夠充足,因此我在Github上分享了我的例子/樣本。我很樂意與大家分享,但不知道該怎麼做。 –

回答

2
  1. 如果你的目的僅僅是包含在JSP中的其他頁面,形成一個完整的頁面,那麼我建議刪除重複的部分(HTML,頭部,身體&其他類似的標籤),幷包含只有特定的部分,以便生成的html只包含ONE html,頭部& body標籤。其中,sj plugin要求<sj:head jqueryui="true"/>爲UI組件工作。看看你的代碼,看起來父頁面是loginSuccess.jsp &因此,它的<head>應該包含這個sj:head的定義。

嘗試刪除多餘的代碼,並希望它應該工作。

+0

是的問題是冗餘代碼。我刪除它,它的工作。謝謝..解決了我的一個大問題。 –

+0

+1,很高興看到有人支持jQuery插件。 – Quaternion