从永远到永远-easyUI框架Dialog嵌套Combobox及前端无法访问action(访问路径正确的情况下)中方法的问题

祖传老项目,前端采用easyUI框架,由于业务需求变动,部分代码重构。其中有一个页面需要点击一个按钮弹出dialog弹框,弹框中包含两个combobox下拉框。本身对easy UI不是很熟悉,公司前端又都是玩VUE的,可是给我坑毁了。现将问题作以记录。

技术选型:easy UI+Struts2+Spring+Mybatis

懒惰使人进步,我直接在原jsp中增加的代码,遇到了几个问题。
1、head中定义了dialog、combobox组件,代码参考了原页面,应该没有太大技术问题,但是combobox死活取不到数据。
在这里插入图片描述
在这里插入图片描述
解决思路:
1)最开始,我以为是dialog加载太快,导致combobox没有执行。为此加了定时方法,发现定时发放可以正常执行,但是combobox依然没有效果。
2)后来,受某博主(忘了链接了)启发。原来如果我们是在原来主页面jsp定义这种弹出框,不能将组件声明放在head标签中。否则,dialog加载后找不到这个组件。所以只能使用另一种定义组件的方法,将组件定义在<body>标签中,如下:
在这里插入图片描述
这样的话,其实在dialog中也不必定义重新加载combobox组件的方法了,因为在加载主jsp页面时候,其实组件已经被初始化了。我说这里的意思是,我其实不是很赞成这样的。因为jsp主页面加载时,我们是看不到弹出的框的,但是我们还是把combobox’框数据做了加载,势必影响主页面加载效率。而且经过测试,即使我在dialog中,再次重新加载combobox组件,他也没有重新加载。这里的原因,我也不清楚是框架的机制还是因为dialog是定义在head标签中所致。没有办法,我实在是不擅长前端。

2、这里又遇到了第二个问题,该问题严格来说不是easy UI框架的问题。因为公司框架使用Struts2做的,很不幸又是我没玩过的东西,导致上边定义的combobox的url访问路径,一直访问不通。我最开始一直在从jsp中的代码找原因。后来在浏览器控制台发现报错404,错误是:No result defined for action XXX and result XXX。这不是前端的问题,而是struts2配置文件的配置问题。这部分我不是很懂,有同样问题的朋友可以参考该博主:
点我呀
首先访问路径其实是没有错的,我参考原项目在struts2.xml增加了一个配置,如下。

<result type="json" name="marketUserList">
        <param name="root">marketUserList</param>
        <param name="contentType">text/html</param>
        <param name="excludeProperties"></param>
    </result>

具体原理,以后有时间再深入了解,在此做个记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值