0

私が扱っているコードは次のようになります。

        <% MessageInfo msg= hp.getInfo(transactionName, checkpointLoc);%>
    <form name='editinfo' action="/editmessage.jsp" method="post">
                <table align=center colspan = "3">
                    <tr>
                        <td><u><b>Currently Editing:</b></u></td>
                    </tr>
                    <tr>
                        <td>Name:</td>
                        <td><input type="text" name="tname" style="width:254px" value=<%= msg.getName() %>/></td>
                        <td><%= msg.getName()%></td>
                    </tr>
                    <tr>
                        <td>Search Method:</td>
                        <td><input type="text" name="searchmethod" style="width:254px" value=<%=msg.getSearchMethod() %>/></td>
                    </tr>
</table>
</form>

現在、テキスト ボックスに奇妙に表示されています。

最初のテキスト ボックスでは、表示されるはずの文字列の最初の単語のみが表示されますが、文字列をテキスト ボックスに配置しないと、文字列全体が表示されます。たとえば、「He​​llo world」が表示される場合、「Hello」だけがテキスト ボックスに表示されます。

2 番目のテキスト ボックスについては、別の種類の問題が発生しています。今回は、文字列の末尾に「/」文字が追加されています。この「/」文字は、JSP にテキスト ボックスの外に表示させると表示されません。この場合、文字列は「XPath」などの 1 つの単語のみであり、テキスト ボックスには「XPath/」と表示されています。

これらのテキスト ボックスが正しく表示されない原因は何ですか?

4

2 に答える 2

2

どちらの場合も、原因は同じである可能性があります。value属性からの引用符がありません。

value=<%= msg.getName() %>

value=<%=msg.getSearchMethod() %>

への変更

value="<%= msg.getName() %>"

value="<%=msg.getSearchMethod() %>"

これらの引用符がないと、不適切な HTML が生成され、ブラウザーの適切な動作に依存することになります。

また、安全のために、これらのメソッドから返された文字列が適切に HTML キャップされていることを確認してください。

于 2012-03-20T15:20:14.687 に答える
0

私は JSP の専門家ではありませんが、私が見る限り、あなたの HTML コードは問題ないように見えます。値属性に引用符を入れてみてください。Web ページは、入力タグの末尾にある「/」を閉じている可能性があります。

于 2012-03-20T15:28:52.927 に答える