2012-03-20 79 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