【问题标题】:how can i pass value from javascript to a java class in struts2?如何将值从 javascript 传递到 struts2 中的 java 类?
【发布时间】:2012-02-02 09:53:14
【问题描述】:
function redirect(id){
alert(id);

document.forms["AddToCart"].submit();
}

这是我的 JavaScript。如何将“id”的值传递给 AddToCart.java。我正在使用 struts2 框架。

【问题讨论】:

    标签: java javascript struts2 struts


    【解决方案1】:

    您可以将值存储在表单内的隐藏字段中,以便在提交表单时将值发送到 Action。

    <form name="AddToCart" ... >
    ...
    <input type="hidden" id="myid"/>
    .....
    </form>
    

    然后

    function redirect(id){
    document.getElementById('myid').value = id;
    
    document.forms["AddToCart"].submit();
    }
    

    【讨论】:

      【解决方案2】:

      有很多方法可以做到这一点,其中一种简单的方法是将其作为隐藏的表单字段传递

      类似

      <s:hidden value="" name="my_ID" id="my_ID"/>
      

      在你的javascript中你需要设置这个隐藏的输入字段

      function redirect(id){
      alert(id);
      document.getElementById("my_ID").value=id;
      document.forms["AddToCart"].submit();
      }
      

      最后一步是在你的动作类中创建一个类似的属性,它的 getter 和 setter 和框架将在受尊重的属性中注入表单值

      public class MyAction extends ActionSupport{
      
        private String my_ID  // data type can be as per your requirements
        getter and setters
      
        public String execute() throws Exception{
           return SUCCESS;
        }
      
      }
      

      这就是您需要做的所有事情,您将能够在my_ID 属性下的操作类中获取值。我假设 AddToCart 是您的 Struts2 Action 类,否则您需要将值从您调用的操作传递给您的类。

      【讨论】:

      • 谢谢你。我已经尝试使用隐藏字段,并且我正在从 javascript 获取我的 java 类中的值。
      【解决方案3】:

      您不能直接从client(javascript)server side(java classes) 通信。 因为 javascript 由您的浏览器执行,而 java 类由您的服务器执行。 所以需要使用Ajax request与java类进行通信。

      【讨论】:

      • 谢谢。我尝试通过使用隐藏字段来实现这一点,它对我有用。
      • Ajax 仅在他想在不重新加载页面的情况下执行时才需要,您始终可以通过向 url 字符串添加参数或提交表单来将参数传递给 java 类
      【解决方案4】:

      由于您正在提交表单,因此您可以在该表单中动态创建一个包含您要发送的 id 的新输入,然后提交该表单。

      【讨论】:

        【解决方案5】:

        在 struts2 中我们必须做两件事来向动作类发送一个值

        • 发送带有特定参数名称的所需值
        • 创建与 jsp 中提到的同名的变量并为该变量创建 setter、getter 方法。

        在行动课中

        public class AddToCart{
        private String itemId;
        
        public String getItemId(){
        return itemId;
        }
        public void setItemId(String id){
        this.itemId=id;
        }
        }
        

        这会起作用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-10
          • 1970-01-01
          • 2017-01-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多