2012-03-20 88 views
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> 

現在,它在文本框中顯示奇怪。

在第一個文本框,它只是顯示它應該顯示字符串的第一個字,但是當我不把字符串中的文本框,顯示完整的字符串。例如,如果要顯示「Hello World」的是,「你好」將在文本框中顯示的唯一的事情。

對於第二個文本框,我遇到了另一種問題。這一次,一個'/'字符被附加到字符串的末尾。當我將JSP顯示在文本框之外時,此'/'字符不會顯示。在這種情況下,字符串只有一個字,例如「XPath」,並且文本框顯示「XPath /」

是什麼導致這些文本框顯示奇怪?

回答

2

在這兩種情況下,原因可能是一樣的 - 你錯過了從value屬性報價:

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

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

更改爲

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

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

沒有這些引號,你產生不好的HTML,並依靠瀏覽器的親切行爲。

此外,爲了安全起見確保該字符串返回從這些方法都是正確的HTML ecapaped。

+0

問題解決了!由於 – user906153 2012-03-20 15:23:00

0

我不是一個JSP專家,但就我所看到的,你的HTML代碼看起來不錯。也許嘗試在價值屬性中加入引號?網頁可能正在拾取輸入標籤末尾的「/」。

+0

在花了我寫這篇文章的時候,另外一個人回答。對不起,重複的帖子。 – 2012-03-20 15:29:57