struts2如何完成数据回显(补充说)?

struts2如何完成数据回显(补充说)?,第1张

<%--
使用Struts2的自定义标签
<s:checkboxlist
name="privilegeIds"
list="#privilegeList"
listKey="id"
listValue="name"></s:checkboxlist>
--%>
<%--
直接写HTML,并自行实现回显效果
--%>
<s:iterator
value="#privilegeList">
<input
type="checkbox"
name="privilegeIds"
value="${id}"
id="cb_${id}"
<s:property
value="%{id
in
privilegeIds

'checked'
:
''}"/>
>
<label
for="cb_${id}">${name}</label>
<br/>
</s:iterator>

看了好几遍都没有看明白你的意思,但是我大概猜到你的意思,就是你想将返回的数据显示在input上面,其实很简单,首先你在data里面设置一个value:'默认值' 然后在方法里面通过thisvalue = '重新赋值(把返回的数据放在这里)'这样就能显示更新之后的数据了。

Struts提供了很多表单相关的自定义标签,这些标签除用于生成相应的html标签外,最大的好处在于它在产生html标签时,会自动检索相应formbean的数据予以显示,这样,当表单校验失败时,表单数据的回显struts帮我们干了,开发人员就不需要再编码去取了。

今天后台管理开发时候,用到自定义的模块,将list返回给前台,出现了分页问题,一共12条数据,但第一页10个之后就没了,必须点击一页显示20个才能将所有数据显示出来。
已有案例:若依框架 分页问题-前端黑洞网
二、问题解决
1分析
debug的时候发现框架自带的表数据回显的方法,是Page并不是list。继续往下看。
在getDateTable中有一个设置 total的地方,应该就是我们自定义的方法返回的list没有像page一样有total,导致分页问题
2解决想法
1因为框架自带的查询是是page类型,我把自定义方法返回的强制转换成page就行了呗。
然后在service,controller。。。改返回类型,结果还是前端返回arraylist无法强制转换成page(Pagehelper)。
2重新定义个Page类型,获取原生select方法的total(但为了获取原生方法的total,把原来的方法返回类型也改成Page亲测不影响数据初始化),然后在这个page中加入想要装填的数据(用addAll方法装填自定义方法返回的list)。
如下图
成功!!!数据回显正常,并且开发需求也满足无问题。

var model = { 'key1':value1,'key2',value2,'key3'};
$('#Form')form('load',model);
//model 的key跟Form表单里面,input 标签的name对应起来就可以了

修改性别是SQL中的语句,比如:
update 表名 set 性别='男(或女)' where 条件
通常男或女不直接显示,使用0或1来代替
struts2也是在后台对数据库的处理。
现在在select标签的话,方式有很多了,如果是页面跳转的话,可以直接使用bean标签赋值,也可以通过js来设置select标签的值


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12961254.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存