我想創建一個自定義標記,它將在JSP上標記爲只讀字段。 任何建議如何做到這一點?如何創建一個標記字段爲readonly的JSP自定義標記?
<input type="text" name="name" <c:if test="condition">readonly</c:if>>
我想創建一個自定義標記,它將在JSP上標記爲只讀字段。 任何建議如何做到這一點?如何創建一個標記字段爲readonly的JSP自定義標記?
<input type="text" name="name" <c:if test="condition">readonly</c:if>>
我想有優雅的和醜陋的方式來解決這個問題,我會與標準if
標籤,除非你有特殊需要,像這樣的開始?你有一個bean有幾個檢查方法來返回布爾檢查結果。然後使用<c:choose>
,<c:when>
和<c:otherwise>
模擬如果 - 那麼,其他
<c:choose>
<c:when test="${!bean.isAuthorized}">
<input type="text" name="name" readonly="readonly">
</c:when>
<c:when test="${bean.isCondition2}">
...........
</c:when>
<c:when test="${bean.isCondition3}">
...........
</c:when>
<c:otherwise>
...............
</c:otherwise>
</c:choose>
如何:
我不知道,如果自定義標籤會去這裏的路..
我明白,你不如果你有20個輸入字段,只要滿足一個條件(例如,當用戶只有只讀私有屬性)時,都需要進行只讀操作。您並不是真的希望運行該單一檢查20次的處理開銷。
你有沒有考慮過創建一個單獨的只讀視圖的表單?並且圍繞一組包含你的if條件包裝?好的 - 你有代碼複製(有辦法最小化),但是這意味着你只有1個支票而不是20個?保持只讀視圖獨立的另一個好處是,數據不一定要在表單元素中顯示,並且你可以自由設計你想要的樣式。
嗨raq,這也是不錯的主意。我將發佈我想要提出的內容..也許你們可以建議或糾正我的方法? – t0mcat
嗨kennet,這種方法可能會帶來太多的代碼,因爲我有多個If-else語句(或者讓我們說一個Switch case),如果這是真的,只讀,如果這是真的,使它消失,如果另一件事是真的,做別的事情。 – t0mcat
呃,在自定義標籤裏面做?順便說一句,這個條件必須放在'test'屬性中。 – BalusC
嗨Balus,我認爲這可以做,但如果其他類型的代碼很多。我正在尋找開發類似於Spring Security的定製標籤「isAuthorized」和全部的定製標籤。 – t0mcat