ssm多个下拉框组合成一条数据_【界面进阶教程下篇】保存和加载多套界面配置数据...

之前有群友问这么一个问题:

bd3bb2dae138128494930af07ca47237.png

在做脚本的时候,可能界面会有多套功能要实现,每次使用的时候都要重新设置一遍,少量的还好,当修改的配置数据比较多的时候就会比较烦,今天的文章就来解决一下这个问题。

先来看看我做的效果:

96c160c865fcd6aa834c2ea3a517e3cf.gif

在界面中我设置3个功能按钮:分别是加载、保存和清空。

先说最简单的清空按钮:

Function 清空()

For i = 1 To 2

uip.SetAttribute("输入框"&i,{"初始文本":""})

Next

For i = 1 To 2

uip.SetAttribute("多选框"&i,{"选中":false})

Next

End Function

在案例中我是有两个输入框和两个多选框要修改,考虑到实际应用的时候会用更多,所以这里我用循环。为了让循环和界面元素有相关性,我在界面元素命名的时候,都使用统一的界面元素名+序号的格式,比如:输入框1,输入框2,……当然这种命名也符合大家的使用习惯。

这样在使用的时候,放在循环中就可以变成 “输入框”&i(i是循环计次变量)当i=1的时候,uip.SetAttribute("输入框"&i,{"初始文本":""}),就是让输入框1的初始文本为空白。同理uip.SetAttribute("多选框"&i,{"选中":false})就是让多选框1变成未选中的状态。当i等于其他数字的时候,就会把对应的界面元素清空或者变成未选中状态。

用循环有一个好处,就是界面无论有多少个同样的元素,只要修改一下循环的次数就可以了。

关于保存和加载功能是这期案例的难点,我们先说说保存功能,有以下几个知识点:

3835f83ec7ce04429b35e6e98b63f729.png

一、使用文本保存界面配置数据,并用数字命名,数字来自下拉框的序号。

d176d2bccb1a65f8e37f5f9a24793931.png

二、文本内容以json格式存储起来,方便调用。

4989c775c7cd8233c467cb6a808f4e2a.png

三、同清空功能类似,按界面元素类型保存,界面元素命名也是名称+序号的形式,然后通过循环保存,在多个相同元素就只修改循环次数即可。

操作思路:

第一步:获取界面下拉框的选项序号,默认是从0开始的。

dim a=uip.getAttribute("下拉框1")

Dim b=a["初始选项"]

第二步:把获取的序号作为配置文件的保存名称。

d176d2bccb1a65f8e37f5f9a24793931.png

第三步:以上一步获取的名字新建一个文本,方便后续往文本中追加数据。

file.write("/sdcard/pictures/" & b & ".txt", "")

第四步:按照元素循环写入,输入框、多选框、下拉框,文本框等,下面是以输入框为例:

1b43329fa690d585e4072a3174d731aa.png

先读取输入框里面的内容m["初始文本"],考虑到要json格式来保存:

"输入框1":"公众号3分钟学堂",

需要补充很多内容:"""输入框"&i&""":"""&m["初始文本"]&""","

循环把所有的界面元素读取出来保存,这里面我在编写的时候,发现布尔值也就是true和false是不能进行字符串拼接,所以我直接换成了,把true换成1,false换成0,然后在存储起来。

3ba843ba2536ad5f8e44c279b38db2c7.png

第五步:所有元素内容都保存完以后,把json格式需要的前后花括号补充上。

Dim x=file.read("/sdcard/pictures/" & b & ".txt")

file.write("/sdcard/pictures/" & b & ".txt","{"&left(x,len(x)-1)&"}")

这几步以后保存功能就完成了。

加载功能的介绍:

36f403ac9c282166e62ab97f389f70c0.png

所谓加载其实就是把保存的内容读取出来。

第一步:根据下拉框来确定读取哪个文本内容,比如配置1,序号是0,那么就是读取0.txt这个文本。

第二步:把读取的内容json转表
dim t=Encode.JsonToTable(x)

第三步:循环写入到界面中

For i = 1 To 2

uip.SetAttribute ("输入框"&i,{"初始文本":t["输入框"&i]})

Next

对于多选框,就先判断是1还是0,然后在写入true和false。

这样加载读取就完成了,对于有大量的元素,在元素命名和填写循环次数的时候一定要认真,不要填错了。

好了本期教程就这些内容,代码源文件我会上传到付费群 78237147,如果有需要可以去群文件下载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.getAttribute是取得jsp中 用setAttribute設定的attribute 2.parameter得到的是string;attribute得到的是object 3.request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据;request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。即request.getAttribute()方法返回request范围内存在的对象,而request.getParameter()方法是获取http提交过来的数据。 JSP中getParameter与getAttribute有何区别? ——说实话,这个问题当初我也困惑很久,我也知道怎么用,可是到底有什么区别,我也不是很清楚,后来找了很多资料才明白。昨天又有一位朋友问我这个问题,想我当初同样也困惑过,于是我就把这个问题贴出来,让同样困惑的朋友解惑。 ——getParameter得到的都是String类型的。或者是http://a.jsp?id=123中的123,或者是某个表单提交过去的数据。 ——getAttribute则可以是对象。 ——getParameter()是获取POST/GET传递的参数值; ——getAttribute()是获取对象容器中的数据值; ——getParameter:用于客户端重定向时,即点击了链接或提交按扭时传值用,即用于在用表单或url重定向传值时接收数据用。 ——getAttribute:用于服务器端重定向时,即在sevlet中使用了forward函数,或struts中使用了mapping.findForward。getAttribute只能收到程序用setAttribute传过来的值。 ——getParameter()是获取POST/GET传递的参数值; ——getAttribute()是获取SESSION的值; 另外,可以用setAttribute,getAttribute发送接收对象.而getParameter显然只能传字符串。 setAttribute 是应用服务器把这个对象放在该页面所对应的一块内存中去,当你的页面服务器重定向到另一个页面时,应用服务器会把这块内存拷贝另一个页面所对应的内存中。这样getAttribute就能取得你所设下的值,当然这种方法可以传对象。session也一样,只是对象在内存中的生命周期不一样而已。 getParameter只是应用服务器在分析你送上来的request页面的文本时,取得你设在表单或url重定向时的值。getParameter返回的是String,用于读取提交的表单中的值; getAttribute返回的是Objiect,需进行转换,可是setAttribute设置成任意对象,使用很灵活,可随时用;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值