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,我了个去...

请有经验的人解决一下这个问题!!

阅读 3.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题