我只是想轉換導航的URL參數,例如2010年,像「2010/11賽季」這樣的字符串。我想到了一個轉換器,使用這樣的:Seam:你如何使用轉換器從頁面參數派生一個值?
<ui:define name="navigation">
<li>
<s:link view="/season-list.xhtml" value="#{seasonHome.id}" styleClass="selected" rendered="#{not empty seasonHome.id}" converter="#{startYearLabelConverter}" />
</li>
...
</ui:define>
轉換代碼:
@Name("startYearLabelConverter")
@BypassInterceptors
@Converter
public class StartYearLabelConverter implements javax.faces.convert.Converter
{
@Override
public Object getAsObject(FacesContext fc, UIComponent uic, String s)
{
// "Season 2010/11" -> 2010 (as new Integer)
...
}
@Override
public String getAsString(FacesContext fc, UIComponent uic, Object obj)
{
// 2010 (as Integer) -> "Season 2010/11"
...
}
}
顯然S:鏈接不具有的 「轉換器」 的屬性。它如何作爲「最佳實踐」而不必重複EL代碼,如s:link ... value="Season #{seasonHome.id}/#{(seasonHome.id + 1).toString().substring(2)}"
?
它被綁定。使用轉換器僅用於輸出是完全正確的。 – 2013-06-21 10:26:38