1

Internet Explorer 8 と jsf を使用しています。2 つの空白の後に "\n" を追加するカスタム コンバーターを作成しました (長すぎる文字列を分割するため)。コンバーターが呼び出され、正しい値が返されます (デバッガーで確認します) が、残念ながらこの正しい値はページに表示されません。これは xhtml コードです:

<h:commandLink action="#{bean.sort(property)}"
                    style="margin-left:0.01px;margin-right:0.01px;white-space:nowrap;">
                    <h:outputText value="#{header}">
                      <f:converter converterId="headerConverter" />
                    </h:outputText>
</h:commandLink>

コンバーターコード:

public class HeaderConverter implements Converter {

public HeaderConverter() {
}

public Object getAsObject(FacesContext context, UIComponent component, String value) {
    /* Converter tylko do wyświetlania */
    throw new RuntimeException("HeaderConverter - display only");
}

public String getAsString(FacesContext context, UIComponent component, Object value) {
    if (value instanceof String) {

        int i = 0;
        int spaceIter = 0;
        String header = (String) value;
        String afterChange = header;

        for (char c : header.toCharArray()) {
            if (Character.isWhitespace(c)) {
               spaceIter++;
               if(spaceIter == 2) {
                   afterChange = "" + header.substring(0, i) + "\n" + header.substring(i+1);
               }
            }
            i++;
        }
        return afterChange;
    }
    return null;
}

もちろん、faces-config.xml のすべてを作成しました。すべての努力を前もって感謝します。

4

1 に答える 1