jQueryを使用してinputTextのキーアップイベントをバインドしているため、その値はスパンテキストに設定されます。
<h:form id="formId">
<script type="text/javascript">
$(document).ready(function(){
var portletNamespace = '#<portlet:namespace/>\\:formId\\:';
$(portletNamespace+'txtSimpleText').live('keyup',function(){
$(portletNamespace+'spanText').text($(portletNamespace+'txtSimpleText').val());
});
});
</script>
<h:inputText id="txtSimpleText" value=""/>
<h:inputText required="true" value=""/>
<h:outputText id="spanText"></h:outputText >
<h:commandButton actionListener="#{myController.someAction}" value="do somthing"/>
</h:form>
正常に動作しますが、最初の検証に失敗すると、spanText テキストが失われます。これは初回のみ発生します。2 番目の検証が失敗したとき、spanText テキストはまだそこにあります。ビューレイヤーでのみ必要であり、フォームが送信された後に使用する必要はありません。検証が失敗した後に spanText を復元する方法を教えてください!
PS: Ajax を使用して spanText の値を保存および設定できないのには理由があります。