java-Spring MVC更新ModelAttribute值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-Spring MVC更新ModelAttribute值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1243字,纯文字阅读大概需要2分钟。
内容图文
修改作为SessionAttribute列出的ModelAttribute时,为什么不保留其新值?
每次我对以下示例进行请求时,它都会打印出“初始值.”,这是第一个请求的正确值.但是在第一个请求之后,其值应为“新值”.
为什么ModelAttribute会存储其值?
我有一个基础课.所有servlet扩展此:
@SessionAttributes(value = {"test_string", "something"})
public abstract class Base<T>
{
public abstract T request(
@ModelAttribute("test_string") String _test_string,
ModelAndView _mv);
@ModelAttribute("test_string")
private String getTest()
{
return "Initial value.";
}
}
我有一个特定的servlet:
@Controller
public class InterfaceController extends Base<String>
{
@PostMapping(value = "/interface")
@ResponseBody
@Override
public String request(
@ModelAttribute("test_string") String _test_string,
ModelAndView _mv)
{
System.out.println(_test_string);
_test_string = "new value";
return "whatever content";
}
}
解决方法:
我不是Spring MVC专家,但是您的问题似乎是在理解Java传递引用和String不变性.我制作了一个图表来帮助您了解问题所在,但您可能需要研究更多有关该问题的信息.
>调用sysout时,将打印“ _test_string”(方法参数)所指向的值,该值此时与ModelAttribute“ test_string”相同.
>当您将“新值”分配给“ _test_string”(方法参数)时,请注意您没有更改“ test_string”(ModelAttribute)的值
>我认为您必须这样做才能覆盖存储在模型中的值.
内容总结
以上是互联网集市为您收集整理的java-Spring MVC更新ModelAttribute值全部内容,希望文章能够帮你解决java-Spring MVC更新ModelAttribute值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。