2013-06-05 124 views
0

我幾乎不知道如何使用AJAX和jQuery,或者它如何工作,但我想使用Struts 2框架做一個簡單的登錄webapp。使用struts標記前綴與ajax

我有一個登錄頁面模板,斷網是如下:

<html> 
<head> 
    <link href="css/style.css" rel="stylesheet" type="text/css" /> 

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script> 
    <script type="text/javascript"> 
    $(document).ready(function() { 
     $(".username").focus(function() { 
      $(".user-icon").css("left","-48px"); 
     }); 
     $(".username").blur(function() { 
      $(".user-icon").css("left","0px"); 
     }); 

     $(".password").focus(function() { 
      $(".pass-icon").css("left","-48px"); 
     }); 
     $(".password").blur(function() { 
      $(".pass-icon").css("left","0px"); 
     }); 
    }); 
    </script> 
</head> 

<body> 
    <div id="wrapper"> 
    <div class="user-icon"></div> 
    <div class="pass-icon"></div> 

    <form name="login-form" class="login-form" action="" method="post"> 
     <div class="header"> 
     <h1>Login Form</h1> 
     <span> 
      Fill out the form below to login to my super awesome imaginary control panel. 
     </span> 
     </div> 

     <div class="content"> 
     <input name="username" type="text" class="input username" value="Username" onfocus="this.value=''" /> 
     <input name="password" type="password" class="input password" value="Password" onfocus="this.value=''" /> 
     </div> 

     <div class="footer"> 
     <input type="submit" name="submit" value="Login" class="button" /> 
     <input type="submit" name="submit" value="Register" class="register" /> 
     </div> 
    </form> 
    </div> 

    <div class="gradient"></div> 
</body> 
</html> 

要使用我包括標籤庫指令和重命名的文件到.JSP類型,然後改變了框架<form>標記爲<s:form></s:form>

之後,它丟失了模板的格式。我下載了struts2-jquery插件jar,並嘗試使用<sj: form>,但這導致了編譯錯誤。

如何在不丟失模板格式和設計的情況下使用struts標籤?

編輯:

http://imgur.com/GKV4b0P,51RmXhP

在這裏你可以看到,當我編輯<form></form><s:form></s:form>,並添加標籤LIB頁面指令會發生什麼:

<%@ taglib prefix="s" uri="/struts-tags"%> 
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%> 

我也將擴展名更改爲.jsp,並且沒有其他編輯。

+2

您能否將您的文本中嵌入的標籤轉義出來,以便我們看到它們?你需要使用簡單的主題,不知道還有什麼因爲我無法讀取你的JSP,因爲所有不相關的東西和大量的評論。 –

+0

+1大量評論:D:D –

+0

而且你甚至沒有包括你試圖調試的JSP - 爲什麼這會是一個好主意? –

回答

0

Struts2的使用Themes to generate the HTML

對於每個主題,相同的Struts2的標籤(如<s:select/>)將產生不同的HTML

默認主題(沒有指定時應用的主題)是XHTML主題

有了它,標籤

<s:select key="personBean.sport" list="sports" /> 

會生成以下HTML:

<tr> 
    <td class="tdLabel"> 
    <label for="save_personBean_sport" class="label">Favorite sport:</label> 
    </td> 
    <td> 
    <select name="personBean.sport" id="save_personBean_sport"> 
     <option value="football">football</option> 
     <option value="baseball">baseball</option> 
     <option value="basketball" selected="selected">basketball</option> 
    </select> 
    </td> 
</tr> 

Here you can find the list of the four out-of-the-box themes

如果有必要,你甚至可以捲起自己的。

我個人更喜歡簡單主題,這將生成儘可能最少的HTML,讓您在標籤周圍生成HTML。

要在標籤中使用它,只需添加這樣的:

<s:select ... theme="simple" /> 

要在項目中設置爲默認的主題爲所有的JSP,把支柱內以下行。xml文件:

<constant name="struts.ui.theme" value="simple" /> 

要將CSS類添加到Struts2的標籤,始終使用cssClass代替class;

要將內嵌樣式添加到Struts2的標籤,始終使用cssStyle代替style


現在,你有你需要,只要你想準確地繪製你的組件的一切:結果HTML和CSS取決於你。

+0

對於遇到同樣問題的其他人,修復程序特別是:「要將CSS類添加到Struts2標記,始終使用cssClass而不是類; 要將內聯樣式添加到Struts2標記,請始終使用cssStyle而不是風格「之上,使用簡單的主題。 –

+0

不錯,我認爲給你所有的主要功能的概述會比調試你的代碼更好,它的工作:) –

+0

@VinayBangaloreNagaraj就像它在標籤文檔中說的,我猜。 –

0

使用

<s:form name="login-form" theme="simple" class="login-for... 
+0

形式仍然沒有顯示出它原有的風格 –

+0

到底發生了什麼 – PSR

+0

http://imgur.com/GKV4b0P,51RmXhP,在這裏你可以看到,當我編輯

,並添加標籤會發生什麼-lib頁面指令。我編輯沒有別的。感謝迅速答覆順便說一句。 –