【Java】ssh中requestAware接口的一个问题,request放进两个值,第二个总不能用s:list读取
最近这个问题困惑我了,有高手能帮忙解决了,连问了四个问题都没人能解决......
问题是这样的,
我写了一个dao类,在里面放进了两个数据到request上,然后在jsp上读取的时候,第一个request的能够别正常解析,比如s:select之类,都能自动显示....
但是接着用第二个request就显示的是内存地址...
代码:
package com.dao;import org.apache.struts2.interceptor.RequestAware;
import java.util.Map;
public class DaoAction implements RequestAware {
private Map<String, Object> request;
private Dao dao = new Dao();
public String input() {
// 我之类连续放进了两个List
request.put("departments", dao.getDepartment());
request.put("roles", dao.getRoles());
return "input";
}
@Override
public void setRequest(Map<String, Object> map) {
this.request = map;
}
}
然后,我在jsp上读取放到request的值:
<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h4>please enter your info</h4>
<s:form action="emp-save" method="post">
<s:textfield name="name" label="UserName"></s:textfield>
<s:textfield name="password" label="Password"></s:textfield>
<s:radio name="gender" list="#{'0':'男','1':'女'}" label="性别"></s:radio>
<%--这里能够显示对应的值,这是第一个request--%>
<s:select name="department" list="#request.departments" listkey="id" listValue="deptName"
label="Department"></s:select>
<%--这里却显示的是内存地址,这是第二个request放进的List--%>
<s:checkboxlist name="role" list="#request.roles" listkey="bid" listvalue="role" label="Role">
</s:checkboxlist>
<s:textarea label="Desc" name="desc"></s:textarea>
</s:form>
<s:submit></s:submit>
</body>
</html>
看显示效果:
当然,自己有权宜之计去解决这个显示的问题...
list="#request.roles" 改为list="#request.roles。{role}",这样就能显示内容了。
<s:checkboxlist name="role" list="#request.roles" listkey="bid" listvalue="role" label="Role"></s:checkboxlist>
因为我用的是idea写的,不知道是不是编辑软件的问题还是怎么样,我看别人的教程,他在eclipse上面写是没有这个问题的,当然,视频是两三年前的,可能有些地方落后了....
还有一个问题就是:但保存的时候,第一个request保存的竟然是对象地址,不是string,我了个去...
请有经验的人解决一下这个问题!!
回答
............
以上是 【Java】ssh中requestAware接口的一个问题,request放进两个值,第二个总不能用s:list读取 的全部内容, 来源链接: utcz.com/a/87929.html