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

来源:互联网 发布:天涯与知乎 编辑:程序博客网 时间:2024/06/05 22:53

一)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


0 0