Struts2标签<1>-HTML标签与struts2标签区别

一)struts2中的HTML标签与用原始的hteml标签哪个更好?有什么区别?为什么要使用上struts2标签?

1)应该根据实际情况的选取,当你的标签中出现了action返回的参数,选用struts的html标签可能好些,否则你的页面会出现<%=%>,这在项目中不允许的,当然要是普通的html,就没有必要使用struts的html标签。

 也不是一定要用,只是用struts2标签会比纯html标签方便;如果页面用struts的标签,action跳转到页面的时候会自动将参数带到页面显示(action中要有setter & getter ) ,纯html标签的话就要自己做个处理了,还比如迭代标签什么的,html标签就不好使用了

其实、Struts2标签也只是对html标签做了一些处理,有时候用Struts2标签很容易就实现的东西、用html实现比较麻烦!
比如像struts2 checkboxlist 标签、select 标签这些用Struts2实现起来比较方便!下面实例展示。

2)主要区别是:html 5的标签还是客户端浏览器执行的,而struts 2标签需要服务器端先编译后再发送给客户端浏览器执行。这个在开始学的时候会比较乱不好把握。 

html 5比较火是因为现在很多本地应用程序的功能在遵循html新标准以后都可以实现为网页了,但目前还有兼容性问题,如ie对标准的支持不好,标准本身也还是草案并未正式推出。

3)struts 2标签主要是结合struts 2框架用的,常用的如迭代标签、条件判断标签等在服务器程序开发中很方便,生成html标签后应该都是标准的,不存在兼容问题。


二)代码演示

1、使用html做的简单表单代码

<span style="font-size:18px;"><html>
  <head>  
    <title>使用html顯示的頁面</title> 
  </head>
  <body>
<span style="font-family:'MS Gothic';">
<form action="savehtmlform.action" method="post">
 			<table border="1">
 				<tr>
 					<td colspan="2">
 						Action对html表单元素进行获取
 					</td>
 				</tr>
 				<tr>
 					<td>
 						复选框checkbox
 					</td>
 					<td>
 						<input type="checkbox" name="ck" value="1" />
 						<input type="checkbox" name="ck" value="2" />
 						<input type="checkbox" name="ck" value="3" />
 						<input type="checkbox" name="ck" value="4" />
 					</td>
 				</tr>
 				<tr>
 					<td>
 						文本框text
 					</td>
 					<td>
 						<input type="text" name="text" />
 					</td>
 				</tr>
 				<tr>
 					<td>
 						单选radio
 					</td>
 					<td>
 						<input type="radio" name="radio" value="1" />
 						<input type="radio" name="radio" value="2" />
 						<input type="radio" name="radio" value="3" />
 						<input type="radio" name="radio" value="4" />
 					</td>
 				</tr>
 				<tr>
 					<td>
 						单选下拉select
 					</td>
 					<td>
 						<select name="select">
 							<option value="1">
 								one
 							</option>
 							<option value="2" selected="selected">
 								two
 							</option>
 							<option value="3">
 								three
 							</option>
 							<option value="4">
 								four
 							</option>
 						</select>
 					</td>
 				</tr>
 				<tr>
 					<td>
 						多选下拉select
 					</td>
 					<td>
 						<select name="multiple" multiple="multiple">
 							<option value="1">
 								one
 							</option>
 							<option value="2" selected="selected">
 								two
 							</option>
 							<option value="3">
 								three
 							</option>
 							<option value="4">
 								four
 							</option>
 						</select>
 					</td>
 				</tr>
 				<tr>
 					<td>
 						文本域(textarea)
 					</td>
 					<td>
 						<textarea rows="2" cols="3" name="textarea">
 						</textarea>
 					</td>
 				</tr>
 				<tr>
 					<td colspan="2">
 						<input type="submit" value="保存表单">
 					</td>
 				</tr>
 			</table>
    </form>
  </span> 
 </body>
</html>
</span>

结果显示:


2、使用struts2的标签做的表单代码

<span style="font-size:18px;"><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>使用struts2標籤</title>
</head>

<body>
	<span style="font-family:'Comic Sans MS';">
	<s:form action="savestrutsform" method="post">
			<s:label value="Action对struts2表单元素进行获取"></s:label>
			<table border="1">
				<s:checkboxlist label="复选框checkbox" list="{1,2,3,4}" value="1,2" name="ck" />
				<s:textfield label="文本框text" name="text" value="" />
				<s:radio list="{1,2,3,4}" name="radio" label="单选radio(list)"></s:radio>
    <s:radio list="#{'1':'one','2':'two','3':'three','4':'four'}" name="radio" label="单选radio(map)"></s:radio>
				<!-- value中设置默认选中 -->
				<s:select label="单选下拉select" list="{1,2,3,4}" value="1" name="select" />
     <s:select label="多选下拉select" list="#{'1':'one','2':'two'}" value="1" name="multiple" multiple="true" />
     <s:textarea label="文本域textarea" name="textarea" value="" cols="2"rows="3"></s:textarea>
				<s:submit value="保存表单"></s:submit>
				
			</table>
		</s:form>
	</span>
</body>
</html>
</span>


结果展示:


3、其他文件

1)FormAction类

<span style="font-size:18px;">public class FormAction {
 	private String text;
 	private String radio;
 	private String ck;
 	private String select;
 	private String multiple;
 	private String textarea;
 
 	public String savestrutsform() {
 		log(getText());
 		log(getRadio());
 		log(getCk());
 		log(getSelect());
 		log(getMultiple());
 		log(getTextarea());
 		return "none";
 	}
 	public String showstrutsform() {
 		return "success";
 	}
 	public String savehtmlform() {
 		log(getText());
 		log(getRadio());
 		log(getCk());
 		log(getSelect());
 		log(getMultiple());
 		log(getTextarea());
 		return "none";
 	}
 
 	public String showhtmlform() {
 		return "success";
 	}
 
 	public void log(String str) {
 		System.out.println(str);
 	}
 	//getter,setter省略
	
 }</span>

2)xml配置文件

<span style="font-size:18px;"><span style="font-family:'Comic Sans MS';">
<struts>
 	<package name="form" extends="struts-default">
 		<action name="savehtmlform" class="com.web.action.FormAction"
 			method="savehtmlform">
 		</action>
 		<action name="showhtmlform" class="com.web.action.FormAction"
 			method="showhtmlform">
 			<result name="success">/core/form_html.jsp</result>
 		</action>
 
 		<action name="savestrutsform" class="com.web.action.FormAction"
 			method="savestrutsform">
 		</action>
 		<action name="showstrutsform" class="com.web.action.FormAction"
 			method="showstrutsform">
 			<result name="success">/core/form_struts.jsp</result>
 		</action>
 	</package>
 </struts>
</span></span>

三)html5和struts2标签怎一起使用

1)如果我用html5做表现层,struts2怎么办呢?

       通过上面的实例大概也可以看出,在某些时候struts2标签确实很好用,简便快捷还要开源!

       struts2使用freemarker写的,把模板自己升级到html5,然后再struts.xml里配置新的模板路径即可用Struts2的标签做传值,剩下的都用html5,但是struts2的标签解析完了也是html标签,最好的做法是不用struts2的标签,用ajax传值。

参考:http://blog.csdn.net/techbirds_bao/article/details/8268719


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值