2009-07-15 3 views
0

私はリンク付きのページを持っていますhttp://localhost:8080/Test/Page.faces?id=asdasdasd ページは2つのテキストフィールドと1つのボタンを持っています。ユーザーキーを入力した後、送信ボタンをクリックすると、最初に送信ボタンをクリックするとうまくいきます。私には正確な値が返されますが、ユーザーが値を入力せずにサブミットをクリックすると、検証が呼び出され、次にボタンを再度クリックするとidがnullを返しますか?どのように誰も助けることができるこの問題を解決するには?JSFリンクパラメータ取得null

+0

からGUP機能を盗んだあなたには、いくつかの例コード/マークアップが含まれてもらえますか?私はあなたの問題が何であるかを完全には確信していません。 – Drew

答えて

0

はい、ユーザーがボタンをクリックすると、ブラウザはサーバーに対して新しい要求を行います。その新しい要求には、その一部として?id = asdasdasdがありません。私が考えることができる最も簡単な解決策は、その値をページの隠しテキストフィールドに保存することです。いくつかのJavaScriptを使用して値を入力することができます。だから、

、あなたは<時間があれば:あなたのJSPに隠されたID = "idHidden" 値= "#{mybean.idHidden}"/>を、このようなおそらくいくつかのjavascript:

<script type='text/javascript'>  
    function gup(name) 
    { 
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
    var regexS = "[\\?&]"+name+"=([^&#]*)"; 
    var regex = new RegExp(regexS); 
    var results = regex.exec(window.location.href); 
    if(results == null) 
     return ""; 
    else 
     return results[1]; 
    } 

    if(gup('id') != "") { 
    document.forms[0].idHidden.value = gup('id'); 
    } 

</script> 

I避難所このコードではエラーをチェックしていませんが、アイデアはページが初めて読み込まれたときに 'id'の値が隠された入力フィールドに格納されます。そのフィールドはマネージドBeanにバインドされているため、値はページリフレッシュ全体で保持されます。 beanに格納されているid値(上記の例ではidHidden)をrequestパラメータの代わりに参照するだけです。

はところで:私はhttp://www.netlobo.com/url_query_string_javascript.html

ニック

関連する問題