Java 使用Spring MVC设置控件属性的值

Java 使用Spring MVC设置控件属性的值,java,spring,spring-mvc,attributes,Java,Spring,Spring Mvc,Attributes,我是Spring和Spring MVC的新手。我在ASP.NET中开发了一些web应用程序,这个框架采用的不同方法让我有点困惑 现在我正在尝试开发一个示例应用程序,我需要更改一些控件(按钮、标签等)的文本 例如:我有一个启动/停止数据提取过程的按钮。我想将按钮的文本设置为“开始”,然后当我单击它时(过程开始),我想将按钮文本设置为“停止”。应对几个标签进行类似的更改 在ASP.NET中,我只需设置每个控件的Text属性 我如何通过SpringMVC从控制器上实现这一点 注意 这也适用于每个控件属

我是Spring和Spring MVC的新手。我在ASP.NET中开发了一些web应用程序,这个框架采用的不同方法让我有点困惑

现在我正在尝试开发一个示例应用程序,我需要更改一些控件(按钮、标签等)的文本

例如:我有一个启动/停止数据提取过程的按钮。我想将按钮的文本设置为“开始”,然后当我单击它时(过程开始),我想将按钮文本设置为“停止”。应对几个标签进行类似的更改

在ASP.NET中,我只需设置每个控件的
Text
属性

我如何通过SpringMVC从控制器上实现这一点

注意
这也适用于每个控件属性…

我自己不是专业人士,但我的做法是使用javascript

有些代码类似于

function changeText() {
   var button = document.getElementById("yourButtonId"); // same as the id attribute of the button
   button.value = "STOP"; 
}
然后在jsp代码中,您可以有:

<input type="button" name="someName" value="START" onclick="changeText()"/>

我想那可能行得通


稍后编辑:我看到您特别询问如何从控制器(这意味着从Java代码)执行此操作,如果我的答案不是您想要的,那么很抱歉。

我自己不是专业人士,但我的做法是使用javascript

有些代码类似于

function changeText() {
   var button = document.getElementById("yourButtonId"); // same as the id attribute of the button
   button.value = "STOP"; 
}
然后在jsp代码中,您可以有:

<input type="button" name="someName" value="START" onclick="changeText()"/>

我想那可能行得通


稍后编辑:我看到您特别询问了如何从控制器执行此操作,这意味着从Java代码中,如果我的答案不是您想要的,很抱歉。

您可以向返回的模型添加参数。例如:

 //some other controller code
 @RequestMapping("/start")
 public ModelAndView start(....) {
       ModelAndView mav = new ModelAndView("example");
       mav.addObject("button_text", "START");

       return mav;
 }
 //...
然后,在example.jsp中:

<input type="button" value="${button_text}" />


不过,看起来您正在尝试使用action-response-one来实现从基于组件的框架中获取的想法,这可能不是最好的想法。

您可以向返回的模型添加参数。例如:

 //some other controller code
 @RequestMapping("/start")
 public ModelAndView start(....) {
       ModelAndView mav = new ModelAndView("example");
       mav.addObject("button_text", "START");

       return mav;
 }
 //...
然后,在example.jsp中:

<input type="button" value="${button_text}" />


不过,看起来您正在尝试使用action response one来实现来自基于组件的框架的想法,这可能不是最好的想法。

谢谢您的建议。我想知道是否可以直接从代码中设置属性值。如果没有,我会按照你的方法…谢谢你的建议。我想知道是否可以直接从代码中设置属性值。如果没有,我将遵循您的方法…我来自ASP.NET,所以您可能说得对:“看起来您正在尝试使用操作响应实现基于组件的导航”。那么,我应该采取哪种方法呢?我的问题不对吗?@daviooh如果您仍然可以更改框架,您可能会对JSF感到更自在(尽管学习spring是个好主意)。如果你不能做到这一点,那么试着不要考虑组件。在spring中,您有视图(通常是jsp,它只是纯html的一小步)、控制器(对来自视图的操作做出反应,通常是表单提交和ajax之类的东西)和模型(从控制器发送回视图的数据)。所有这些在春天都是松耦合的。html元素与控制器/模型元素之间不存在1对1的映射。因此,与其在模型中放置标签(标签是控制器不应该担心的),不如发送一个布尔值,指示是否启动了它,并根据该布尔值决定在视图中显示哪个标签。但这真的取决于个人品味。太好了!我正在研究这个框架,因为我知道它的潜力。我不想改变它,我只想学习正确的“思维方式”来正确使用它。所以如果我没有错的话,你是说使用javascript设置文本(或其他属性),对吗?你可以在controller中设置它们,这里没有“控制属性”的概念,至少在asp.net意义上没有。服务器端没有控件,您可以在其中设置文本并将其显示在客户端。您只需发送数据并接收响应。也许在客户端上做一些事情来限制客户端与服务器之间的通信是一个好主意,但您并不是被迫这样做的。我来自ASP.NET,所以您可能说得对:“看起来您正在尝试使用操作响应实现基于组件的导航”。那么,我应该采取哪种方法呢?我的问题不对吗?@daviooh如果您仍然可以更改框架,您可能会对JSF感到更自在(尽管学习spring是个好主意)。如果你不能做到这一点,那么试着不要考虑组件。在spring中,您有视图(通常是jsp,它只是纯html的一小步)、控制器(对来自视图的操作做出反应,通常是表单提交和ajax之类的东西)和模型(从控制器发送回视图的数据)。所有这些在春天都是松耦合的。html元素与控制器/模型元素之间不存在1对1的映射。因此,与其在模型中放置标签(标签是控制器不应该担心的),不如发送一个布尔值,指示是否启动了它,并根据该布尔值决定在视图中显示哪个标签。但这真的取决于个人品味。太好了!我正在研究这个框架,因为我知道它的潜力。我不想改变它,我只想学习正确的“思维方式”来正确使用它。所以如果我没有错的话,你是说使用javascript设置文本(或其他属性),对吗?你可以在controller中设置它们,这里没有“控制属性”的概念,至少在asp.net意义上没有。服务器端没有控件,您可以在其中设置文本并将其显示在客户端。您只需发送数据并接收响应。也许在客户端上做一些事情来限制客户端与服务器之间的通信是一个好主意,但您并不是被迫这样做的。