首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储变量以便在java中的视图/页面之间安全地传递

问存储变量以便在java中的视图/页面之间安全地传递
EN

Stack Overflow用户
提问于 2018-01-08 12:17:42
回答 2查看 44关注 0票数 1

我想在一个java页面/视图中存储一个变量,然后在另一个页面/视图中检索它。到目前为止,我发现(在服务器端):

要存储变量供以后使用,请执行以下操作:

代码语言:javascript
复制
public static void setViewDataState(String state) {
    ViewData viewData = new ViewData();

    //getThreadLocalRequest().getSession(true).setAttribute("viewData", viewData);
    viewData.setState(state);
    System.out.println("state2 = " + state);
}

要检索变量,请执行以下操作:

代码语言:javascript
复制
public static String getViewDataState() {
    ViewData viewData = new ViewData();
    System.out.println("state3 = " + viewData.getState());
    return viewData.getState();
}

State2显示的是正确值,而State3显示的是null。请问做这件事的正确方法是什么?我可以在GWT中做到这一点;但是,我还是个java新手。

我在GWT中是这样做的:

代码语言:javascript
复制
public ViewData setViewData(String accountId, String accountLevel,
        String ymId, String awId, String adAwardGroup, String adScoutGroup,
        String caId, Integer numberOfGroupsStarted, String groupSection,
        String hikeRecordID, String hikeMealID, String e1ActivityID,
        String penPalID, String groupNAS) {
    ViewData viewData = new ViewData();

    getThreadLocalRequest().getSession(true).setAttribute("viewData", viewData);
    viewData.setaccountId(accountId);
    viewData.setaccountLevel(accountLevel);
    viewData.setymId(ymId);
    viewData.setawId(awId);
    viewData.setadAwardGroup(adAwardGroup);
    viewData.setadScoutGroup(adScoutGroup);
    viewData.setcaId(caId);
    viewData.setnoGroupsStarted(numberOfGroupsStarted);
    viewData.setsection(groupSection);
    viewData.sethikeRecordID(hikeRecordID);
    viewData.sethikeMealID(hikeMealID);
    viewData.setactivityE1ID(e1ActivityID);
    viewData.setpenPalID(penPalID);
    viewData.setGroupNAS(groupNAS);
    return viewData;
}

public ViewData getViewData() {
    return (ViewData) getThreadLocalRequest().getSession().getAttribute("viewData");
}
EN

回答 2

Stack Overflow用户

发布于 2018-01-08 12:22:22

你需要一些外部存储器。Redis可能是跟踪此类事件的最常见方法,但如果您有数据库或其他存储对象的方法,则可以使用它们(这取决于您在性能方面的需求)。

票数 0
EN

Stack Overflow用户

发布于 2018-01-09 08:39:45

答案是搬家:

代码语言:javascript
复制
ViewData viewData = new ViewData();

对于类下的存储和检索:

代码语言:javascript
复制
public class MySQLConnection implements Serializable {
    private static final long serialVersionUID = 1L;
    static ViewData viewData = new ViewData();
    //other code including the store and retrieve
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48144163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档