1、struts 2.0中的<s:textfield>标签
label属性就指明了文本框前面的说明文本,没必要重新加入文字说明
2、在struts 2.0的标签中,国际化信息要用"%{getText('label.login.userName')}"这种形式
3、<s:head/>放置在<head></head>之间
将会引入struts tag用到的一些css和js文件
需要注意的是,如果任何ui tag或者ajax tag的theme属性值是ajax
那么<s:head>必须有theme属性 并且它的值是ajax
这将会额外地引入与ajax相关的js文件,比如dojo.js
如果没有引入,则会出现dojo不存在的错误
同时引入之后,可以在写javascript脚本时使用dojo框架,例如dojo,byId()
4、如果要自定义布局struts 2.0中的ui tag,则要设置ui tag必须加上theme="simple"才能进行自定义布局
5、在结合dwr的过程中,在页面要导入的javascript脚本是
<script type='text/javascript' src='/tmsot/dwr/interface/login.js'></script>
<script type='text/javascript' src='/tmsot/dwr/engine.js'></script>
<script type='text/javascript' src='/tmsot/dwr/util.js'></script>
但是engine.js、util.js文件没必要copy
6、当进行用户名是否存在验证的时候,如果多次输入错误,则会出现多条错误提示,同时,即使输入的是正确的也不能进入,
如图配置后就表明每次从spring容器中获取action.Login的实例的时候就会new一个新对象,即我们所说的原型,spring中scope默认的是单态(singleton),当然针对web应用程序,还可以配置为request、session等范围。至于什么时候使用什么权限范围就要看应用程序的使用了,比如在多线程程序中,单态是否会对程序有所影响就需要考虑了。
7、对struts.xml代码著一备注
要和spring结合请加<constant name="objectFactory" value="spring" />
要国际化 <constant name="struts.custom.i18n.resources"
value="globalMessages" />
<s:textfield label="%{getText('label.login.userName')}"
name="userName"
tooltip="%{getText('label.login.userName.toolTip')}"
id="userName" />
label属性就指明了文本框前面的说明文本,没必要重新加入文字说明
2、在struts 2.0的标签中,国际化信息要用"%{getText('label.login.userName')}"这种形式
3、<s:head/>放置在<head></head>之间
将会引入struts tag用到的一些css和js文件
需要注意的是,如果任何ui tag或者ajax tag的theme属性值是ajax
那么<s:head>必须有theme属性 并且它的值是ajax
这将会额外地引入与ajax相关的js文件,比如dojo.js
如果没有引入,则会出现dojo不存在的错误
同时引入之后,可以在写javascript脚本时使用dojo框架,例如dojo,byId()
4、如果要自定义布局struts 2.0中的ui tag,则要设置ui tag必须加上theme="simple"才能进行自定义布局
5、在结合dwr的过程中,在页面要导入的javascript脚本是
<script type='text/javascript' src='/tmsot/dwr/interface/login.js'></script>
<script type='text/javascript' src='/tmsot/dwr/engine.js'></script>
<script type='text/javascript' src='/tmsot/dwr/util.js'></script>
但是engine.js、util.js文件没必要copy
6、当进行用户名是否存在验证的时候,如果多次输入错误,则会出现多条错误提示,同时,即使输入的是正确的也不能进入,
<bean id="loginAction" class="com.lsxy.tmsoft.web.action.Login"
abstract="false" lazy-init="default"
autowire="default" dependency-check="default" scope="prototype">
<property name="userService">
<ref bean="userService" />
</property>
</bean>
如图配置后就表明每次从spring容器中获取action.Login的实例的时候就会new一个新对象,即我们所说的原型,spring中scope默认的是单态(singleton),当然针对web应用程序,还可以配置为request、session等范围。至于什么时候使用什么权限范围就要看应用程序的使用了,比如在多线程程序中,单态是否会对程序有所影响就需要考虑了。
7、对struts.xml代码著一备注
<struts>
<constant name="objectFactory" value="spring" />
<constant name="struts.custom.i18n.resources"
value="globalMessages" />
<package name="default" extends="struts-default">
<action name="login" class="loginAction">
<result name="SUCCESS">/admin/index.jsp</result>
<result name="input">/login.jsp</result>
</action>
</package>
</struts>
要和spring结合请加<constant name="objectFactory" value="spring" />
要国际化 <constant name="struts.custom.i18n.resources"
value="globalMessages" />