我想在一个java页面/视图中存储一个变量,然后在另一个页面/视图中检索它。到目前为止,我发现(在服务器端):
要存储变量供以后使用,请执行以下操作:
public static void setViewDataState(String state) {
ViewData viewData = new ViewData();
//getThreadLocalRequest().getSession(true).setAttribute("viewData", viewData);
viewData.setState(state);
System.out.println("state2 = " + state);
}要检索变量,请执行以下操作:
public static String getViewDataState() {
ViewData viewData = new ViewData();
System.out.println("state3 = " + viewData.getState());
return viewData.getState();
}State2显示的是正确值,而State3显示的是null。请问做这件事的正确方法是什么?我可以在GWT中做到这一点;但是,我还是个java新手。
我在GWT中是这样做的:
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");
}发布于 2018-01-08 12:22:22
你需要一些外部存储器。Redis可能是跟踪此类事件的最常见方法,但如果您有数据库或其他存储对象的方法,则可以使用它们(这取决于您在性能方面的需求)。
发布于 2018-01-09 08:39:45
答案是搬家:
ViewData viewData = new ViewData();对于类下的存储和检索:
public class MySQLConnection implements Serializable {
private static final long serialVersionUID = 1L;
static ViewData viewData = new ViewData();
//other code including the store and retrieve
}https://stackoverflow.com/questions/48144163
复制相似问题