【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>

看显示效果:
【Java】ssh中requestAware接口的一个问题,request放进两个值,第二个总不能用s:list读取

当然,自己有权宜之计去解决这个显示的问题...
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

回到顶部