一)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
今天的文章Struts2标签<1>-HTML标签与struts2标签区别分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/25671.html