java - 设置来自 Java Servlet 的 http 请求的按钮颜色

标签 java jsp servlets button

我正在尝试开发一个网络服务,其中一个功能是在用户单击时设置按钮的颜色。之前我尝试使用 JavaScript 进行设置,但无法永久保留颜色变化 (see previous post here) 。我想做的是让用户选择多个按钮,然后根据所选按钮提交信息(类似于复选框,但使用按钮对触摸屏友好)。

如何将信息从我的 Java Servlet 发送到我的 .jsp 文件以指示按钮的颜色?

<---JAVA Servlet --->

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if (request.getParameter("TV1") != null){ 
        toggleButton(1, request);                       
    }

}

public void toggleButton(int targetNum, HttpServletRequest req){
    //button previously selected.. go to deselect..
    if (pressedOnce[targetNum] == true){ 
        pressedOnce[targetNum] = false; 
        req.setAttribute("buttonColor","yellow");
    }
    //button not selected previously.. go to select..
    else{
        targetsSelected[targetNum] = targetNum; //TV1 selected 
        pressedOnce[targetNum] = true;
        req.setAttribute("buttonColor","green");
    }
}

<--- JSP ---->

    <style type="text/css">
    .button {color:green;    
             background-color: <%= request.getAttribute("buttonColor") %>;
             font-size: 150%; 
             font-family: Arial Black;
             width:<%=(buttonWidth+"px")%>; 
             height:<%=(buttonHeight+"px")%>}

...

<form action="FirstServlet" method="get"> 
<div id="TVs">    
  <%for (int i=1; i<=numTargets; i++) {
 <button id="TV<%=i%>" name= "TV<%=i%>" class="button"> 
<%}%>

有没有办法从 JavaServlet 设置 JSP 中的样式类或背景颜色?当我尝试 setAttribute("buttonColor", "yellow"); 时什么都没发生。我知道我在这里错过了一些基本的东西..但如果有人可以帮助我,我将非常感激!

最佳答案

尝试在用户 session 而不是用户请求上设置您想要的值。

并且不要在 servlet 中使用实例属性(例如 pressedOnce);

因此,尝试将变量 pressedOnce 添加到用户 session 中。这样:

req.getSession().setAttribute("pressedOnceAttribute", pressedOnce);

现在该对象已绑定(bind)到该特定用户 session 。

现在,每次用户点击 servlet 时,您都需要查看该用户是否已经有一个 session 。

请参阅此处了解更多信息:

http://oak.cs.ucla.edu/cs144/projects/project5/session_tutorial.html

关于java - 设置来自 Java Servlet 的 http 请求的按钮颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20788679/

相关文章:

java - 从远程计算机(我的计算机)运行位于 Raspberry PI 上的 jar 文件

java - 从 Android 应用程序创建主屏幕浏览器快捷方式

java - 如何在 spring mvc 应用程序中打开弹出窗口

javascript - 仅当用户在文本框外部单击后,文本字段中的数字才应自动格式化?

java - 使用 HttpServletRequest 获取请求发送者的 URL

java - 如何将 session 值作为请求参数从 JSP 传递到 servlet?

java - 本地系统中的 Elastic APM : cpu usage when running application. jar

java - REST:GET 返回不支持的媒体类型

java - 在 user-service-ref 中使用 jdbc-user-service

jsp - jetty 中的 Jasper 在 getOutputStream 上抛出 IllegalStateException 而不是在 Tomcat 上