我有一个地图对象,这个地图对象有一些值,我在 jsp 页面上填充这些值,但问题是当我将 jsp 页面发布到另一个控制器时,我希望地图对象中存在相同的值。
Map(一些值)--->controller--->jsp(Map+一些附加值)----post----->另一个控制器[想要Map+附加值]
邮件内容.java
public class MailContent {
private String from;
private String to;
private String[] toMany;
private Map<String,byte[]> attachements;
//getter setter
}
一些.jsp
<f:form action="../hr/sendNotification" commandName="mailHolder">
<table>
<tr>
<td><label>From:</label></td>
<td><input class="inputq" type="text" name="from" /></td>
</tr>
<tr>
<td><label>To:</label></td>
<td><input type="text" class="inputq" name="to" id="to"></input></td>
</tr>
<tr>
<td><label>Subject:</label></td>
<td><input class="inputq" type="text" name="subject" /></td>
</tr>
<c:forEach var="attach" items="${mailHolder.attachements }" varStatus="i">
<tr>
<td><label>Attachement:${i.index+1 }</label></td>
<td><input class="inputq" type="text" value="${attach.value }" name="attachements[${i.index }].value"/>
<input class="inputq" type="text" value="${attach.key }" name="attachements[${i.index }].key"/>
</tr>
</c:forEach>
<tr>
<td><label>Message:</label></td>
<td><textarea class="tarea" cols="60" rows="10" name="message"></textarea></td>
</tr>
<tr>
<td></td>
<td><input class="fancy" type="submit" value="Send" />
<input class="fancy" type="reset"
value="Reset" /></td>
</tr>
</table>
</f:form>
键值对在 jsp 上成功显示,但是当我将其发布到另一个控制器并获取值时,键部分填充了一些索引而不是值。
在控制台上:
前:
MailContent [from=null, to=null, attachements={abc=[B@1d37913, xyz=[B@b20ff5}, subject=null, message=null]
后帖:
MailContent [from=from, to=to@gmail.com, attachements={0=[B@ebe064, 1=[B@1d90655}, subject=subject, message=message]