如何从Spring Controller中创建并添加到Model Object的HashMap中检索不同的Bean类对象

时间:2015-03-06 14:24:57

标签: java spring jsp hashmap jstl

我是春天新手,我需要帮助。

我的工作朝着这个问题 步骤

1:创建了一个控制器,我在控制器

中创建了5个Bean类对象

2:创建了HashMap。

3:将bean类对象添加到HashMap。

4:将HashMap添加到模型对象。

5:在Jsp中,我想检索bean类对象并在jsp(Success视图)中打印bean类属性值。

      public class SocialMediaContoller{//step1

//step2
    TwitterBean tb=new sampleA();

    GoogleBean gb=new GoogleBean();

    YouTubeBean yb=new YouTubeBean();

    InstagramBean ib=new InstagramBean();

    FaceBookBean fb=new FaceBookBean();


//step3  
        Map<String,Object> socialmedia=new HashMap<String,Object>();
        socialmedia.put("twittermetrics",tb);
        socialmedia.put("googleplusmetrics",gb);
        socialmedia.put("instagrammetrics",ib);
        socialmedia.put("youtubemetrics",yb);
        socialmedia.put("facebookmetrics",fb);

    //spe4
    return "view/socialmedia/SocialMediaSuccess"; 
    }

InSuccessJSP 第六步: 我想显示bean类属性的值 我的代码是:

 <div id="twitter">
    <div id="twitterMetrics">
    <p><b>Twitter Profile Analysis</b></p>
     <table id="twitterTable">
    <tr>
    <td><b>Followers</b></td>
    <td><c:out value="${tb.followers}" /></td>
    </tr>
    </tr>
    </table>
<table id="googleTable">
    <tr>
    <td><b>Followers</b></td>
    <td><c:out value="${gb.followers}" /></td>
    </tr>
    </tr>
    </table>
<table id="youtubeTable">
    <tr>
    <td><b>Followers</b></td>
    <td><c:out value="${yb.views}" /></td>
    </tr>
    </tr>
    </table>
<table id="instagarmTable">
    <tr>
    <td><b>Followers</b></td>
    <td><c:out value="${ib.followers}" /></td>
    </tr>
    </tr>
    </table>
    </div>

    </div>

其他对象

JSP中的

最后我需要帮助/代码(步骤6)从MapObject(即社交媒体)中检索元素从JSP成功页面中的模型对象

2 个答案:

答案 0 :(得分:0)

Model对象本身代表一个Map,因此创建另一个Map以注入Model是多余的。而只需将您的bean直接添加到Model,例如model.addAttribute( “twittermetrics”,TB)。在JSP中,您可以直接引用Model键。

答案 1 :(得分:0)

目前您的控制器正在返回String。要从MapObject(即socialmedia)检索元素,您需要返回ModelAndView。请在下面找到代码段。

控制器

    @RequestMapping(value="/getSocialMediaData")
        public ModelAndView getSocialMediaData() throws SystemException, BusinessException{
    private ModelMap map = new ModelMap();  
                TwitterBean tb=new sampleA();
                GoogleBean gb=new GoogleBean();
                YouTubeBean yb=new YouTubeBean();
                InstagramBean ib=new InstagramBean();
                FaceBookBean fb=new FaceBookBean();
                map.addAttribute("twittermetrics",tb);
                map.addAttribute("googleplusmetrics",gb);
                map.addAttribute("instagrammetrics",ib);
                map.addAttribute("youtubemetrics",yb);
                map.addAttribute("facebookmetrics",fb);
      return new ModelAndView("view/socialmedia/SocialMediaSuccess",map);
}

成功JSP

<div id="twitter">
   <div id="twitterMetrics">
    <p><b>Twitter Profile Analysis</b></p>
     <table id="twitterTable">
    <tr>
    <td><b>Followers</b></td>
    <td><c:out value="${twittermetrics.followers}" /></td>
    </tr>
    </tr>
</table>
<table id="googleTable">
    <tr>
    <td><b>Followers</b></td>
    <td><c:out value="${googleplusmetrics.followers}" /></td>
    </tr>
    </tr>
 </table>
<table id="youtubeTable">
    <tr>
    <td><b>Followers</b></td>
    <td><c:out value="${youtubemetrics.views}" /></td>
    </tr>
    </tr>
 </table>
<table id="instagarmTable">
    <tr>
    <td><b>Followers</b></td>
    <td><c:out value="${instagrammetrics.followers}" /></td>
    </tr>
    </tr>
 </table>
</div>