这两天开始学习Sturts2。登录时候用的是Struts标签,觉得网页加载速度很慢,换成form表单,速度提升好几倍。自己一直就不太喜欢用Struts标签,觉得JSTL已经够用的了,也相当好使。
<body>
<s:form method="post" action="Login_checkUser.action">
<s:textfield name="userName" label="昵称"></s:textfield>
<s:password name="passWord" label="密码"></s:password>
<s:submit value="提交"></s:submit>
</s:form>
</body>
这是再简单不过的一个登陆表单,但是它使用的是 struts标签。但是在解析出来的页面查看源文件时,却发现被解析成这样
<body>
<form id="Login_checkUser_action" name="Login_checkUser.action" action="/Struts2Demo/Login_checkUser.action" method="post">
<table class="wwFormTable">
<tr>
<td class="tdLabel">
<labelfor="Login_checkUser_action_userName"
class="label">昵称:</label>
</td>
<td>
<input type="text" name="userName" value=""
id="Login_checkUser_action_userName"/>
</td>
</tr>
<tr>
<td class="tdLabel">
<label for="Login_checkUser_action_passWord"
class="label">密码:</label>
</td>
<td>
<input type="password" name="passWord"
id="Login_checkUser_action_passWord"/>
</td>
</tr>
<tr>
<td colspan="2">
<div align="right">
<input type="submit" id="Login_checkUser_action_0"
value="提交"/>
</div>
</td>
</tr>
</table>
</form>
</body>
下面是普通form表单页面
<body>
<form action="/Struts2Demo/checkUserAction.action" method="post">
昵称:<input type="text" name="userName"/><br/>
密码:<input type="password" name="passWord" /><br/>
<input type="submit" value="提交">
</form>
</body>
请求此页面,解析成什么大家应该最清楚。通过下面这张图也许更能对比出来
这是我用HttpWatch观测每个请求所用时间,第一次请求index.jsp,也就是 struts标签的form表单页面所用时间为5.236 第二个为请求 index2.jsp也就是普通form表单页面,用时0.218.
也许请求默认页面耗时长,所以我又多写了个index3.jsp此页面和index.jsp完全相同,复制过去的。第三个请求为index3.jsp,用时0.709
当再次请求index.jsp页面,用时0.225,第二次请求index2.jsp时候用时0.007。通过此数据对比,就能看出struts标签确实费时。而且我在index2.jsp页面中也导入了struts标签。只是没有应用标签,可以看出并不是导入标签费时,而是解析标签费时。
问题补充
个人比较喜欢struts2 的标签,很强大
速度慢的问题,楼上的已经说过了,我就不多说了。
说说它的好处吧:
和配合使用: 可以防止重复提交。
方便校验。
支持ajax,随时进行错误提示。
还有和OGNL配合的话,可以有更多对象可供使用
Struts form 没有多少人用,还是JSTL用起来顺手些
[code="java"][/code]在form标签里使用主题 有很多主题
使用theme="simple" 展示出来的结果就是这样的格式
[code="html"]
我最近也在学struts2,也许相应速度是慢点,但可以加theme=“simple”啊,而且它的标签可以减少部分业务逻辑的代码量啊
[quote="jayxu"][code="java"][/code]在form标签里使用主题 有很多主题
使用theme="simple" 展示出来的结果就是这样的格式
[code="html"]
form标签的主题9成9都是垃圾,只有simple可以用(总算把设计权交回给用户了)
struts2,的form是比较有用的
你可以把主题设置一下
因为当用到struts2的校验框架的时候,你就可以看出它的好处
theme="simple"