概述
在Struts2.x里面本意是希望方便用户开发,所以在许多的标签上都使用了操作模板,但是在实际的布局中这些模板如果出现,则会破坏布局从要求
范例:观察表单问题
<s:form action="FormAction.action" method="post">
<s:textfield key="name" label="姓名"/>
<s:submit value="发送"/>
</s:form>
<form id="FormAction" name="FormAction" action="FormAction.action" method="post">
<table class="wwFormTable">
<tr>
<td class="tdLabel"><label for="FormAction_name" class="label">姓名:</label></td>
<td
><input type="text" name="name" value="" id="FormAction_name"/></td>
</tr>
<tr>
<td colspan="2"><div align="right"><input type="submit" id="FormAction_0" value="发送"/>
</div></td>
</tr>
</table></form>
所以这个时候如果使用了UI标签就必须承受这些生成代码所带来的问题.但是为了解决这种布局所带来的混乱,可以取消掉使用的页面模板.
范例:取消模板
<s:form action="FormAction.action" method="post" theme="simple">
用户名:<s:textfield key="name" theme="simple"/>
<s:submit value="发送" theme="simple"/>
</s:form>
此时虽然取消了布局代码对页面布局的影响,但是对于前端工程师来讲依然无法知道此类代码.这些事标签,在直白的界面下无法显示,也就是说如果有美工要进行修饰,那么美工还必须自己搭建好服务器,设置好Struts,完全不靠谱.
如果公正的来讲,UI标签在一些组件的生成还是挺方便的,例如现在要差U年底一组部门信息,希望可以生成下拉列表框.
范例:在Action保存一组部门信息
package cn.zwb.action;
import java.util.ArrayList;
import java.util.List;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
import cn.zwb.vo.Dept;
@SuppressWarnings("serial")
public class FormAction2 extends ActionSupport {
@Override
public String execute() throws Exception {
List<Dept> allDepts=new ArrayList<Dept>();
for (int i = 0; i < 10; i++) {
Dept dept=new Dept();
dept.setDeptno(i);
dept.setDname("开发部-"+i);
allDepts.add(dept);
}
ServletActionContext.getRequest().setAttribute("all", allDepts);
return "form.show";
}
}
如果此时页面要想输出下拉列表框有两种选择,一种是利用循环,采用迭代的方式输出每一个下拉列表项,另外一种是使用Struts2.x标签生成.
范例:利用标签生成
<s:select list="#request.all" listKey="deptno" listValue="dname"></s:select>
总结:在实际开发过程中尽量利用request传递数据信息到JSP页面,而后使用JSTL+EL输出会更加方便.
最后
以上就是飞快季节为你收集整理的(十四)UI标签的全部内容,希望文章能够帮你解决(十四)UI标签所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复