答:在使用Vue框架和element-ui开发时,下拉框遇见一个问题,比如有一个所在地需要选择省市区,当省市选完后,选择区的时候,会发现值已经改变解决方法:
出现这个问题好像是因为下拉框数据是循环掉别的接口得来的,因为数据层次太多,render函数没有自动更新,需手动强制刷新所以我直接强制刷新了值,而forceUpdate就是重新render。Java_3y
Java_3y
关注
Struts2第十一篇简单UI标签、数据回显
原创27 阅读
Java_3y
Java_3y
2021-07-13 14:05:24
关注
Struts2UI标签
Sturts2为了简化我们的开发,也为我们提供了UI标签…也就是显示页面的标签…
但是呢,Struts2是服务端的框架,因此使用页面的标签是需要在服务器端解析然后再被浏览器解析,最后才显示在页面上的。因此,它的性能是不够HTML标签好的…HTML直接就能够被浏览器解析
还有一点是:我们在写网页的时候,肯定是需要使用div+css的页面布局的。使用Struts2UI标签也没法干了…因此,除了有必要的话,才去使用Struts2UI标签
简单使用Struts2UI标签
<%--我们发现,Struts2UI标签用起来和HTML是差不多的--%>
<s:form id="form1" name="form1" method="POST" action="#">
<%--输入框数据,lable就相当于我们以前外边写的数据--%>
<s:textfield label="用户名" name="userusername"/>
<%--密码框--%>
<s:password label="密码" name="userpassword"/>
<%--提交按钮--%>
<s:submit value="提交"/>
</s:form>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
当我们查看源文件的时候,发现Struts2UI标签为我们自动加入了很多的标签
Struts2第十一篇简单UI标签、数据回显_Struts
设置主题
上面已经说了,Struts2UI标签为我们自动加入了很多的标签,那有的时候,我们不想要,或者换一种风格的话,怎么办???
Struts2UI标签也为我们提供了“主题”这样的功能…
当我们在表单中设置theme属性为simple之后…我们发现源文件Struts2自动为我们添加的标签全没了。
Struts2第十一篇简单UI标签、数据回显_java_02
如果我们想整个项目都是使用simple为主题的话,我们可以在配置文件中配置!
<constant name="strutsuitheme" value="simple"/>
1
2
数据回显
我们对数据回显也不会陌生,在使用EL表达式的时候就已经用过了数据回显了…那为啥数据回显放在Struts2标签这里讲解呢???因为Struts2也提供了数据回显的支持,并且,使用数据回显必须要使用Struts2的标签…
Struts2第十一篇简单UI标签、数据回显_ui_03
按照正常思路写数据回显
在Struts中按照正常思路写数据回显是这样的:
把数据放到request域中存储,跳转到对应的JSP页面…
public String login() {
//把数据存储到域中
Map<String, Object> request = ActionContextgetContext()getContextMap();
requestput("username", "zhongfucheng");
requestput("password", "123");
return SUCCESS;
}
1
2
3
4
5
6
7
8
9
JSP页面使用Struts2标签,设置value属性就可以进行数据回显了
<s:form id="form1" name="form1" method="POST" action="" >
<%--输入框数据,lable就相当于我们以前外边写的数据--%>
<s:textfield label="用户名" name="userusername" value="%{#requestusername}"/>
<%--密码框--%>
<s:password label="密码" name="userpassword"/>
<%--提交按钮--%>
<s:submit value="提交"/>
</s:form>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
效果:
Struts2第十一篇简单UI标签、数据回显_java_04
Struts2提供的数据回显
其实,上面的代码已经实现了数据回显,但Struts2提供了一个更巧妙的方法
Struts2第十一篇简单UI标签、数据回显_java_05
也就是说,Struts2可以直接在name中就可以实现数据回显了…要做的是:
我们回显的数据在根元素下的,也就是保存在CompoundRoot中的数据保存在根元素的数据不用使用#号就可以获取
因此,我们把想要回显的数据放在CompoundRoot下
直接放在值栈的数据就是根元素数据
//得到值栈对象
ValueStack valueStack = ActionContextgetContext()getValueStack();
valueStackset("username","zhongfucheng");
1
2
3
4
在JSP就可以直接获取了
<s:textfield label="用户名" name="username"/>
1
2
效果:
Struts2第十一篇简单UI标签、数据回显_ui_06
<script type="text/javascript"> $(function () { $('preprettyprint code')each(function () { var lines = $(this)text()split('\n')length; var $numbering = $('<ul/>')addClass('pre-numbering')hide(); $(this)addClass('has-numbering')parent()append($numbering); for (i = 1; i <= lines; i++) { $numberingappend($('<li/>')text(i)); }; $numberingfadeIn(1700); }); }); </script>看了好几遍都没有看明白你的意思,但是我大概猜到你的意思,就是你想将返回的数据显示在input上面,其实很简单,首先你在data里面设置一个value:'默认值' 然后在方法里面通过thisvalue = '重新赋值(把返回的数据放在这里)'这样就能显示更新之后的数据了。
=LOOKUP(1,0/((Sheet1!$A$2:$A$7=Sheet2!A2)(Sheet1!$B$2:$B$7=Sheet2!B2)),Sheet1!$C$2:$C$7)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)