简体   繁体   English

我可以在Spring MVC的模型类中获取会话对象吗

[英]Can I get the session object in my model class in spring mvc

One of my requirement is to get the session attribute in my one of the setter method so that while setting the data i can play as per my requirement with my data and return new data as expected. 我的要求之一是在我的setter方法之一中获取session属性,以便在设置数据时,我可以根据自己的需求使用我的数据进行播放,并按预期返回新数据。

Is it possible to get the HTTP Session Object in my model Class, if not is there any way to achieve this by any other alternative. 是否有可能在我的模型类中获取HTTP会话对象,如果没有,可以通过任何其他替代方法来实现。

Here is my Model Class. 这是我的模型课。

DiscoveredProduct 发现产品

package com.hcl.ne.model;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpSession;

public class DiscoveredProduct {

    private String _id;
    private String _rev;
    private String name;
    private String productCatalogName;
    private String normalizedProductName;
    private String domain;
    private String desc;
    private String product;
    private String company;
    private String dataset;
    private String classType;
    private Map<String,Object> attributes[];
    private List<Map<String,Object>> attributes2;
    private String hostName;
    private String serialNumber;
    private String createdOn;
    private String qulRuleId;
    private String classId;
    private String companyId;
    private String selectedDiscoveredPdt;
    private int pageSize;
    private String isNormalized;
    private String ne_status;  
    private Map<String,Object> normalizedAttributes[];
    private String normalizedOn;



    public String getNe_status() {
        return ne_status;
    }
    public void setNe_status(String ne_status) {
        this.ne_status = ne_status;
    }          


    public String get_id() {
        return _id;
    }
    public void set_id(String _id) {
        this._id = _id;
    }
    public String get_rev() {
        return _rev;
    }
    public void set_rev(String _rev) {
        this._rev = _rev;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDomain() {
        return domain;
    }
    public void setDomain(String domain) {
        this.domain = domain;
    }
    public String getDesc() {
        return desc;
    }
    public void setDesc(String desc) {
        this.desc = desc;
    }
    public String getProduct() {
        return product;
    }
    public void setProduct(String product) {
        this.product = product;
    }
    public String getCompany() {
        return company;
    }
    public void setCompany(String company) {
        this.company = company;
    }
    public String getDataset() {
        return dataset;
    }
    public void setDataset(String dataset) {
        this.dataset = dataset;
    }
    public String getClassType() {
        return classType;
    }
    public void setClassType(String classType) {
        this.classType = classType;
    }
    public String getProductCatalogName() {
        return productCatalogName;
    }
    public void setProductCatalogName(String productCatalogName) {
        this.productCatalogName = productCatalogName;
    }
    public Map<String, Object>[] getAttributes() {
        return attributes;
    }
    public void setAttributes(Map<String, Object>[] attributes) {
        this.attributes = attributes;
    }
    public String getHostName() {
        return hostName;
    }
    public void setHostName(String hostName) {
        this.hostName = hostName;
    }
    public String getSerialNumber() {
        return serialNumber;
    }
    public void setSerialNumber(String serialNumber) {
        this.serialNumber = serialNumber;
    }
    public String getCreatedOn() {
        return createdOn;
    }
    public void setCreatedOn(String createdOn) {
        HttpSession session = new 
        this.createdOn = createdOn;
    }
    public List<Map<String, Object>> getAttributes2() {
        return attributes2;
    }
    public void setAttributes2(List<Map<String, Object>> attributes2) {
        this.attributes2 = attributes2;
    }

    public String getClassId() {
        return classId;
    }
    public void setClassId(String classId) {
        this.classId = classId;
    }
    public String getCompanyId() {
        return companyId;
    }
    public void setCompanyId(String companyId) {
        this.companyId = companyId;
    }
    public String getSelectedDiscoveredPdt() {
        return selectedDiscoveredPdt;
    }
    public void setSelectedDiscoveredPdt(String selectedDiscoveredPdt) {
        this.selectedDiscoveredPdt = selectedDiscoveredPdt;
    }
    public String getQulRuleId() {
        return qulRuleId;
    }
    public void setQulRuleId(String qulRuleId) {
        this.qulRuleId = qulRuleId;
    }
    public int getPageSize() {
        return pageSize;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
    public String getIsNormalized() {
        return isNormalized;
    }
    public void setIsNormalized(String isNormalized) {
        this.isNormalized = isNormalized;

    }
    public String getNormalizedProductName() {
        return normalizedProductName;
    }
    public void setNormalizedProductName(String normalizedProductName) {
        this.normalizedProductName = normalizedProductName;
    }
    public Map<String, Object>[] getNormalizedAttributes() {
        return normalizedAttributes;
    }
    public void setNormalizedAttributes(Map<String, Object>[] normalizedAttributes) {
        this.normalizedAttributes = normalizedAttributes;
    }
    public String getNormalizedOn() {
        return normalizedOn;
    }
    public void setNormalizedOn(String normalizedOn) {
        this.normalizedOn = normalizedOn;
    }


}

Edited Code 编辑代码

package com.hcl.ne.model;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;

import com.hcl.ne.service.util.CommonUtility;

public class DiscoveredProduct {

    private String _id;
    private String _rev;
    private String name;
    private String productCatalogName;
    private String normalizedProductName;
    private String domain;
    private String desc;
    private String product;
    private String company;
    private String dataset;
    private String classType;
    private Map<String,Object> attributes[];
    private List<Map<String,Object>> attributes2;
    private String hostName;
    private String serialNumber;
    private String createdOn;
    private String qulRuleId;
    private String classId;
    private String companyId;
    private String selectedDiscoveredPdt;
    private int pageSize;
    private String isNormalized;
    private String ne_status;  
    private Map<String,Object> normalizedAttributes[];
    private String normalizedOn;

    @Autowired
    private HttpSession httpSession;



    public String getNe_status() {
        return ne_status;
    }
    public void setNe_status(String ne_status) {
        this.ne_status = ne_status;
    }          


    public String get_id() {
        return _id;
    }
    public void set_id(String _id) {
        this._id = _id;
    }
    public String get_rev() {
        return _rev;
    }
    public void set_rev(String _rev) {
        this._rev = _rev;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDomain() {
        return domain;
    }
    public void setDomain(String domain) {
        this.domain = domain;
    }
    public String getDesc() {
        return desc;
    }
    public void setDesc(String desc) {
        this.desc = desc;
    }
    public String getProduct() {
        return product;
    }
    public void setProduct(String product) {
        this.product = product;
    }
    public String getCompany() {
        return company;
    }
    public void setCompany(String company) {
        this.company = company;
    }
    public String getDataset() {
        return dataset;
    }
    public void setDataset(String dataset) {
        this.dataset = dataset;
    }
    public String getClassType() {
        return classType;
    }
    public void setClassType(String classType) {
        this.classType = classType;
    }
    public String getProductCatalogName() {
        return productCatalogName;
    }
    public void setProductCatalogName(String productCatalogName) {
        this.productCatalogName = productCatalogName;
    }
    public Map<String, Object>[] getAttributes() {
        return attributes;
    }
    public void setAttributes(Map<String, Object>[] attributes) {
        this.attributes = attributes;
    }
    public String getHostName() {
        return hostName;
    }
    public void setHostName(String hostName) {
        this.hostName = hostName;
    }
    public String getSerialNumber() {
        return serialNumber;
    }
    public void setSerialNumber(String serialNumber) {
        this.serialNumber = serialNumber;
    }
    public String getCreatedOn() {

            long epochDate = Long.parseLong(createdOn);
            System.out.println(epochDate);
            HttpSession session = getHttpSession();
            String timeZone = (String) session.getAttribute("timeZone");
            String dateFormat = (String) session.getAttribute("dateFormat");
            String offSet = (String) session.getAttribute("offSetValue");
            String resultDate = CommonUtility.getDateInGMT(epochDate, timeZone, dateFormat, offSet);
            return resultDate;


    }
    public void setCreatedOn(String createdOn) {
        this.createdOn = createdOn;
    }
    public List<Map<String, Object>> getAttributes2() {
        return attributes2;
    }
    public void setAttributes2(List<Map<String, Object>> attributes2) {
        this.attributes2 = attributes2;
    }

    public String getClassId() {
        return classId;
    }
    public void setClassId(String classId) {
        this.classId = classId;
    }
    public String getCompanyId() {
        return companyId;
    }
    public void setCompanyId(String companyId) {
        this.companyId = companyId;
    }
    public String getSelectedDiscoveredPdt() {
        return selectedDiscoveredPdt;
    }
    public void setSelectedDiscoveredPdt(String selectedDiscoveredPdt) {
        this.selectedDiscoveredPdt = selectedDiscoveredPdt;
    }
    public String getQulRuleId() {
        return qulRuleId;
    }
    public void setQulRuleId(String qulRuleId) {
        this.qulRuleId = qulRuleId;
    }
    public int getPageSize() {
        return pageSize;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
    public String getIsNormalized() {
        return isNormalized;
    }
    public void setIsNormalized(String isNormalized) {
        this.isNormalized = isNormalized;

    }
    public String getNormalizedProductName() {
        return normalizedProductName;
    }
    public void setNormalizedProductName(String normalizedProductName) {
        this.normalizedProductName = normalizedProductName;
    }
    public Map<String, Object>[] getNormalizedAttributes() {
        return normalizedAttributes;
    }
    public void setNormalizedAttributes(Map<String, Object>[] normalizedAttributes) {
        this.normalizedAttributes = normalizedAttributes;
    }
    public String getNormalizedOn() {
        return normalizedOn;
    }
    public void setNormalizedOn(String normalizedOn) {
        this.normalizedOn = normalizedOn;
    }
    public HttpSession getHttpSession() {
        return httpSession;
    }
    public void setHttpSession(HttpSession httpSession) {
        this.httpSession = httpSession;
    }




}

Yes it is possible. 对的,这是可能的。

  1. Using RequestContextHolder 使用RequestContextHolder
  2. By Autowiring session. 通过自动装配会话。

1. RequestContextHolder 1. RequestContextHolder

ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
HttpSession session =  attr.getRequest().getSession();

2. AutoWired 2. AutoWired

@Autowired private HttpSession httpSession;

Update: No need of getters and setters,autowire and use as httpSession.getAttribute() 更新:不需要getter和setter,自动装配并用作httpSession.getAttribute()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用Spring MVC 3在控制器中从模型中获取对象? - How can I get an object out of the model in the controller with Spring MVC 3? Spring获取会话类对象 - Spring get session class object 如何使用 spring 和 hibernate 在我的 class 中获取 session 工厂 - How can get the session factory in my class using spring with hibernate 如何在我的自定义Wicket模型类中注入Spring bean? - How can I get a Spring bean injected in my custom Wicket model class? 在LifeTimeJCRSessionUtil的Spring MVC Magnolia模块中获取JCR Session对象的更好方法 - Better way to get a JCR Session object in my Spring MVC Magnolia module that LifeTimeJCRSessionUtil 如何在Spring MVC中将属性添加到会话而没有模型对象? - how add attribute to session without having model object in spring mvc? Spring MVC中的模型对象 - Model object in Spring MVC Spring 3 MVC:表单支持对象必须在会话中吗? 我怎么能避免这个? - Spring 3 MVC: form backing object has to be in session? How can I avoid this? 我怎样才能得到值 Model class Object 到 Z57A97A39435CFDFCEED96E03F2A3BC27 的值? - How can I get value Model class Object to ArrayList as String? 我正在尝试 Spring MVC,当我在控制器类中添加 @Autowired 时,出现以下错误: - I am trying Spring MVC and when I add @Autowired in my controller class I get following error:
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM