2016-04-25 57 views
0

我試圖修改一個Java陣列的<input>標籤內JSP修改Java數組

String[] userProperties = {"one", "two", "three"}; 
String[] propValues = new String[userProperties.length]; 
. 
. 
. 

<% for(int i = 0; i < userProperties.length; i++) { %> 
    <tr>   
     <td> 
      <input type="text" size="30" maxlength="150" name="<%=propValues[i]%>" value="somevalue"> 
     </td> 
    </tr> 
<% } %> 
. 
. 
. 

我想爲了有在本實施例3點中輸入的形式,和各形態,一旦點擊提交按鈕,用戶輸入的值將被綁定到propValues數組中的適當位置。我正在修改這個基於name設置爲本地Java變量的舊代碼,並且它能夠成功修改該變量。這對於JSP中的數組不可行嗎?我知道JSTL有一個<c:forEach>的標籤,這使得它更簡單,但由於我正在使用一個相當老的代碼庫中的單個文件,所以我想保持它訪問的庫一致。這可能使用<%> Java代碼塊嗎?

回答

0
//length will 3 but initialize with default value null. 
String[] propValues = new String[userProperties.length]; 

你正在試圖做的是要初始化變量userProperties並嘗試訪問數組變量propValues實際上包含null

name="<%=propValues[i]%>" // set your name as a null. 

因此,所有你的三個input有同名null。不如試試這個代碼

<input type="text" size="30" maxlength="150" name="<%=userProperties[i]%>" value="somevalue"> 

,而不是

<input type="text" size="30" maxlength="150" name="<%=propValues[i]%>" value="somevalue"> 
+0

感謝您的評論!那麼我可能從根本上誤解了JSP如何工作。我試圖通過輸入表單爲'userProp [i]'分配一個值,所以如果我做了你所建議的改變,它會修改數組'userProperties'的元素嗎?如果是這樣,你是否建議我將'userProp'初始化爲3個空白字符串的數組? –