我想在一个java页面/ View 中存储一个变量,然后在另一个页面/ View 中检索它。到目前为止我发现(在服务器端):
存储变量以供以后使用:
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 显示空值。请问这样做的正确方法是什么。我可以在 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");
}
最佳答案
您需要某种外部存储。 Redis 可能是跟踪此类事件的最常见方法,但如果您有数据库或其他某种方式来存储对象,则可以使用它(取决于您对性能的需求)。
关于java - 存储变量以在 Java 中的 View /页面之间安全传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48144163/