0

本当に2つの質問があります。まず、コントローラーを叩いたときにタグがその内部の他のタグとどのように相互作用するのか疑問に思っています。具体的には、タグの外側とタグの内側に別のものがあります。 params は一度コントローラー内に配置されますが、form タグの textFieldは params にはありません。これはなぜですか?

2 つ目の質問は、タグの操作に関するものです。コントローラーにヒットしたら、params のタグの値にアクセスしようとしていますが、単にそこにありません。の隣に右があり、最終的には params になりますが、. ではありません。

.gsp の質問の例を次に示します。

<div id="includedNodes">
  <g:textField name="happyTextField" value="I. FEEL. HAPPY!" />
  <g:select name="selectto" id="selectTo" multiple="true"
            size="25" from="${['is', 'this', 'working?']}"/>
</div>

そして、ここにコントローラーがあります:

def includedNodes = params.selectTo
def otherIncludedNodes = params.selectto
def textfieldData = params.happyTextField
def hello = "asdf"  // <--- I put a breakpoint here

ブレークポイントに到達したら、パラメーターを調べて、happyTextField がパラメーターに含まれていることを確認しますが、selectto は含まれていません。

助けてくれてありがとう。

4

2 に答える 2

1

ビューソースを実行するか、Firefoxを使用して、実際に作成されているHTMLの種類を確認します。タグの外側にネストされたタグや入力がないことを確認してください。アドオンHttpfoxを使用して、ブラウザがサーバーに送信している内容を正確に確認することもできます。

于 2012-10-16T17:47:11.497 に答える
0

マクロのようなタグを考える必要があります。タグは HTML を出力するプロセスを簡素化しますが、ページがブラウザー経由で往復した後にコントローラーで何が起こるかについて直接的なアクションはありません。そのため、ブラウザで HTML ソースを見て、何が起こっているかを確認する必要があります。この時点では (ブラウザーにとって) HTML が手書きであるか、Grails で生成されているか、Java で生成されているか、PHP で生成されているかに関係なく、単なる HTML です。

コントローラ側では、標準の HTTP リクエストだけが表示されます。そのため、ブラウザが送信しているリクエスト パラメータを確認する必要があります。

2 番目の質問については、ブラウザで HTML ソースを見て、selecttoパラメータが送信されない理由を確認してください。オプション値のみがブラウザから送信されるため、<option>送信する前にフォーム内の の1 つまたは一部を選択しなかった可能性があります。selected="selected"

于 2012-10-16T05:21:50.627 に答える