【问题标题】:How to pass bean values from parent jsp to child jsp in struts2如何在struts2中将bean值从父jsp传递给子jsp
【发布时间】:2014-07-19 01:12:42
【问题描述】:

struts2中如何将bean值从父jsp传递给子jsp?

我当前的应用程序是基于 Struts 1.2 构建的。 在这种情况下,当提交表单时,会提交整个jsp。另一个(或相同的)jsp 加载了 bean 值。

我正在尝试在我当前的应用程序中实现一个单页应用程序。我没有加载/提交整个页面,而是通过 ajax 调用 jsp。它返回所需jsp的html,并将html附加在主jsp中。

所以只有 1 个通过 struts 动作重定向的主 jsp。

我在主 jsp 中调用 bean 值。

我的要求是,当用户单击任何控件输入时,如何将 bean 值(数据)传递给通过 ajax 加载到主 jsp 中的新 jsp。

如何将 bean 值(数据)传递给新的 jsp?

我是 struts2 的新手。任何帮助表示赞赏。谢谢。

已编辑:

请找到通过ajax附加html的代码:

附加html的div:

JSP:

<div class="dynamic-loaded-content">
</div>

和加载在 ajax 上的 HTML 名称:index-calender.html 此名称在以下方法中传递:

JS:

function dynamic_file_linker(path) { /* loader display */
$('.loading-bg').show();
$('.loading-img').show().offset({
    top: $(window).height() / 2,
    left: $(window).width() / 2
});
$('.tool-tip').hide();

$.ajax({
    url: path,
    type: 'GET',
    dataType: "text",
    success: function(result) {
        $('.dynamic-loaded-content').empty().append(result);

        $('.loading-bg').fadeOut();
        page_align();
    },
    error: function() {
        alert('Sorry! The page cannot be loaded.');
    }
})
}

【问题讨论】:

  • AJAX 调用必须指向 Action,而不是 JSP。然后这些动作将返回 JSP。你能告诉我们你到目前为止做了什么吗? BTW Struts2 绝对能够达到这个结果,但考虑到它可能不是 SPA 的最佳选择:有些框架正是为此而生的……因此更面向 SPA。我会看看 AngularJS,以防万一,因为您现在开始研究一个新框架并且有“自定义”要求

标签: java jsp struts2


【解决方案1】:

您可以使用 FormData 对象通过 AJAX 传递表单数据:

var formData = new FormData(form);
xmlHTTP.send(formData);

xmlHTTP 是您的 ajax 请求对象,form 是您的表单。这会将表单中的所有数据传递给您正在调用的操作。

有关此技术的详细信息,请参见此处:

https://developer.mozilla.org/en-US/docs/Web/Guide/Using_FormData_Objects

【讨论】:

    【解决方案2】:

    Ajax 函数

     $.ajax({
     url: path?form_data1='+ $("#data1").val()+'&form_data2='+$("#data2").val()+',
     type: 'GET',
     success: function(result) {
     //your stuff     
     },
     error: function() {
        alert('Sorry! The page cannot be loaded.');
     }
    });
    

    struts.xml

     <action name="path" class="controller.UrlActionClass">
            <result name="success">result.jsp</result>
     </action> 
    

    UrlActionClass.class

       private String form_data1;
       private String form_data2;
       //getter and setter method
    

    ajax 成功页面... 将 result.jsp 页面放到你的 div 标签中。

    【讨论】:

      猜你喜欢
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-28
      相关资源
      最近更新 更多