(十四)UI标签

        在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输出会更加方便.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值