2012-04-23 13 views
0

私はSpringとSpring MVCの新機能です。私はのASP.NETにいくつかのWebアプリケーションを開発しました。このフレームワークの後ろにある別のアプローチは私をちょっと混乱させています。Spring MVCでの制御属性の設定値

私はサンプルアプリケーションを開発しようとしており、いくつかのコントロール(ボタン、ラベルなど)のテキストを変更する必要があります。

例:データ抽出プロセスを開始/停止するボタンがあります。ボタンのテキストを「START」に設定したいのですが、それをクリックすると(プロセスが開始されたとき)、ボタンのテキストを「STOP」に設定したいと思います。いくつかのラベルについて同様の変更を行う必要があります。

ASP.NETでは、単に各コントロールのTextプロパティを設定しました。

これをコントローラからSpring MVCでどうすれば実現できますか? NOTE これはまた、すべてのコントロールの属性に適用される

...

答えて

1

返されるモデルにパラメータを追加できます。たとえば:

//some other controller code 
@RequestMapping("/start") 
public ModelAndView start(....) { 
     ModelAndView mav = new ModelAndView("example"); 
     mav.addObject("button_text", "START"); 

     return mav; 
} 
//... 

そして、あなたのexample.jspに:まだ

<input type="button" value="${button_text}" /> 

、それは、あなたがアクションレスポンス1を使用して、コンポーネント・ベースのフレームワークから取られたアイデアを実装しようとしているように見えますそれは最良のアイデアではないかもしれません。

+0

私はASP.NETから来ていますので、あなたは言うかもしれません。_アクションレスポンスを使ってコンポーネントベースのナビゲーションを実装しようとしているようです。 _。それで、私はどのアプローチに従うべきですか?私の質問は間違っていますか? – davioooh

+0

@ davioohフレームワークを変更することができれば、JSFを家庭でもっと感じるでしょう(しかし、春を学ぶのは良い考えです)。あなたがそれを行うことができない場合は、コンポーネントの面で考えないようにしてください。春にはビュー(純粋なhtmlからほんの少しだけ上にあるjsp)、コントローラ(ビューからのアクション、通常はサブミットやajaxのものに反応する)、モデル(コントローラからビューに返すデータ) 。それは春にゆるく結合されています。 html要素からコントローラ/モデル要素への1対1のマッピングはありません。 – soulcheck

+0

それで、モデルにラベルを貼るのではなく(ラベルはあなたのコントローラが心配してはいけないIMOです)、開始されたかどうかを示すブール値を送信し、その値に基づいてビューに表示するラベルを決定しますブール値。しかし、それは本当に個人的な好みに依存します。 – soulcheck

0

私自身はプロではないが、私はそれを行う方法ではJavaScriptを使用することです。

いくつかのコードが

function changeText() { 
    var button = document.getElementById("yourButtonId"); // same as the id attribute of the button 
    button.value = "STOP"; 
} 

ようなものになるだろう。そして、あなたが持っている可能性がJSPコードで:

<input type="button" name="someName" value="START" onclick="changeText()"/> 

私は仕事ができると思います。

後で編集:私はあなたが探しているものではない場合は、ごめん、Javaコードから、コントローラからそれを行う方法を具体的に尋ねた参照してください。

+0

ありがとうございます。私は、コードから直接属性値を設定することが可能かどうかを知りたいです。もしそうでなければ、私はあなたのアプローチに従います... – davioooh