Java 如何在SpringMVC中共享表单的成员?
如何使从表单对象检索到的值可用于另一个类。 让我们调用这个类Sample.java。如何生成从提交的值 JSP表单可用于类Sample.java,并将其保存在那里以供使用,直到用户注销 我尝试在如下所示的Controller方法中添加一个公共字符串变量,然后在Sample.java中创建一个Controller实例来获取该值,但它总是返回nullJava 如何在SpringMVC中共享表单的成员?,java,spring,jsp,spring-mvc,Java,Spring,Jsp,Spring Mvc,如何使从表单对象检索到的值可用于另一个类。 让我们调用这个类Sample.java。如何生成从提交的值 JSP表单可用于类Sample.java,并将其保存在那里以供使用,直到用户注销 我尝试在如下所示的Controller方法中添加一个公共字符串变量,然后在Sample.java中创建一个Controller实例来获取该值,但它总是返回null 解决方案分为两部分: 一, 并将其保存在那里以供使用,直到用户注销 您可以使用会话范围的bean来保存该值 二, 如何使从JSP表单提交的值可用于类S
解决方案分为两部分: 一, 并将其保存在那里以供使用,直到用户注销 您可以使用会话范围的bean来保存该值 二, 如何使从JSP表单提交的值可用于类Sample.java 控制器将提交的值存储在该会话bean中。java类也是一个bean,访问该bean以获取值 我现在没有IDE,所以我需要把它写一点
@Component
@Scope(BeanDefinition.SCOPE_SESSION)
public class MySessionBean()
private String content;
Getter/setter
}
@Controller
...
@Autowire
private MySessionBean mySessionBean;
...
public String processThisValue( @ModelAttribute( "myValues" ) MyBean myBean,
ModelMap model) {
//myBean is only a simple class!!!!!
...
this.mySessioBean.setContent(valuePassed);
...
}
@Service
public class Sample() {
@Autowire
private MySessionBean mySessionBean;
public void doSomething() {
System.out.println("the current users value:" + mySessionBean.getValue());
}
}
您可以使用Httpsession在SpringMVC控制器内设置用户会话
public String processThisValue( @RequestParam("value") String value, HttpSession session
ModelMap model) {
MyBean.setTheValue("value");
session.setAttribute("key", MyBean);
return "somepage";
}
@范围会话注释很好,但一旦控制器太大,它可能会导致一些缩放问题。我更喜欢旧的乏味的HttpSession:我在代码中看不到Sample类,但除非您将对象保存到session中,或者在需要时对其进行序列化和反序列化,否则您尝试执行的操作是不可能的。您好,gigadot,Sample.java只是一个普通类,其中包含两个方法。你认为这次会议在这里行吗?我们可以使用session将变量从servletcontroller传递到常规类吗?我很难理解这里传递到类的意思。如果在控制器方法中创建了对象,则是,您可以使用会话。
public String processThisValue( @RequestParam("value") String value, HttpSession session
ModelMap model) {
MyBean.setTheValue("value");
session.setAttribute("key", MyBean);
return "somepage";
}