2011-12-06 118 views
0

您認爲什麼是更好的做法?使用Javascript的Struts標籤

你會怎麼做(在JavaScript):

var aaa = <s:property value="myValue"/>; 

或者說(在JSP文件):

<s:hidden name="myValue" id="myValue" /> 

與(在JavaScript):

var bbb = document.getElementById("myValue").value; 

回答

1

你可以只有這樣才能達到預期的效果。唯一重要的是個人品味和喜好。

我不喜歡混淆東西,並會採用第二種方式使用隱藏字段。對我而言,它有兩個目的。

  1. 將我的struts2標記從JavaScript中分離出來。
  2. 更多了,我可以寫與標準JavaScript方法簡單幹淨的JavaScript代碼,而混合起來的東西
1

的方法有很多,包括你已經證明什麼。

您還可以:

  • 通過JSP處理器
  • 使用動態JS不同的模板語言(如FreeMarker的)
  • 散發出你的JS文件之前評估一個JSON對象傳遞JavaScript文件包括(例如,隱藏的div的內容僅針對JS副作用進行評估)
  • 在您的功能觸發之前,在頁面加載時對相同的JSON對象進行Ajax調用

可能還有幾個。除非非常清楚哪些形式值重要,哪些不重要,否則我不喜歡隱藏的字段,除非它們處於未提交的形式(如隱藏的,單獨的形式)。

2

那麼,這取決於我的想法。除非將它們另存爲.jsp,否則不能在JS文件中使用struts2標記。如果你這樣做,或者你的頁面中有JS代碼,我個人不會遇到第一個選項的問題,因爲標籤將在服務器上被處理。當有一個簡單的任務時,我經常使用它。
我不喜歡第二個選項,因爲它使代碼有點難看,可能會導致一些維護問題。
總而言之,將JS和服務器端代碼分開是一種更好的做法。如果你發現自己把事情搞混了,你可能想看看你的設計在哪裏可以改變。 這又取決於你喜歡怎麼做。