一、利用struts标签库
1、导入标签库:<%@ taglib prefix="s" uri="/struts-tags" %>
2、主要为from表单:
<s:form action="fromAct" method="post" namespace="/from">
<s:textfield name="name" id="name" label="姓名"></s:textfield>
<s:password name="password" id="password" label="密码" tooltip="请输入密码" maxlength="15"></s:password>
<s:textfield name="age" id="age" label="年龄"></s:textfield>
<s:select list="{‘成都‘,‘昆明‘ }" name="address.province" headerKey="0" headerValue="请选择省" lable="省"></s:select><br/>
<s:select list="{‘双流‘,‘呈贡‘ }" name="address.city" headerKey="0" headerValue="请选择市" lable="市"></s:select>
<s:submit value="注册"></s:submit>
</s:form>
建议:表单内的name属性最好和Action类的成员变量相同
可参考:http://blog.163.com/hzd_love/blog/static/131999881201082111852520/
二、struts在xml中的代码提示解决方法(我用的2.1.8版本)
1.首先在struts中搜索struts-2.0.dtd文件
2.在设置preferences——Files and Editors——xml——xml Catalog中设置,location中填 入: struts-2.0.dtd文件的路径,keytype中选择uri,key 填http://struts.apache.org/dtds/struts- 2.0.dtd(从struts.xml复制的)
三、路径的访问顺序
1、先找自己的命名的命名空间,找不到再默认空间
2、namespace="/"和默认是一样的效果
3、http://localhost:8080/Struts2/test/asdff/sasdfd/HelloWorld的访问的顺序是先在sasdfd 中HelloWorld这个Action,然后再到asdff中找,之后再找test中,这就是为什么只有test中有 HelloWorld的,但是输入面的地址仍然可以访问HelloWorld的原因。如果都找不到就只有到默 认的命名空间找。
四、包含配置:主要是为了不要将大篇幅的配置信息都写得struts.xml中和适应多人共同开发
<struts>
<include file="struts-test.xml" />
<include file="struts-from.xml" />
<include file="struts-chain.xml" />
<include file="struts-dispacher.xml" />
<include file="struts-redirectT.xml" />
<include file="struts-plainText.xml" />
<include file="struts-global.xml" />
</struts>
五、开发模式:
开发中配置文件的更改,在访问时让框架自动重新加载:
struts.devMode = false(default.properties)
利用strutx.xml中的constant元素来覆盖掉default.properties默认行为,这样就避免了重复的发布问题,例如下:
<struts>
<constant name="struts.devMode" value="true"></constant>
</struts>