[color=black][size=large][list=1]
[*]
[/list][size=xx-small]
㈠在Structs中如何解决中文乱码问题
1.在工程下建一个Servlet,让它实现javax.servlet.filter接口
2.在doFilter方法中添加如下代码:
request.setCharacterEncoding("gbk");//设置编码方式为gbk
chain.doFilter(request,response);//表示调用下一个过滤器,但必须在最后写,也表示在它后面能够再添加其它的过滤器
3.在web.xml中添加配置信息:
<filter>
<filter-name>给过滤器命一个名</filter-name>
<filter-class>过滤器类的路径</filter-class>
</filter>
<filter-mapping>
<filter-name></filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
======================================================================================================
㈡在Structs中弹出错误信息
1.在Structs-config.xml中添加配置信息,在<action>中添加属性:
<action validate="true" //表示支持ActionForm中验证方法
input="页面路径" //当验证不通过时,在这个页面显示错误信息
></action>
2.在ActionForm中的validate方法中添加对表单中输入的值验证,对于错误信息
ActionErrors errors=new ActionErrors();
errors.add("键",new ActionMessage("ApplicationResources.properties中的键"));
注意:在添加错误信息时,也可以这样写:
errors.add("(页面输出错误信息的)键",new ActionMessage("键",数组或多个参数));
此时在ApplicationResources.properties资源文件中改为:
键=……{0}…{1}……
这里的{0}、{1}等等代表数组中下标元素或参数的位置。
3.在ApplicationResources.properties资源文件中添加:
errors.header=<span style="color:red">
errors.footer=</span>
键=错误信息
4.在页面中输出:
<html:errors property="errors集合中的键">
5.提示:
①在读取资源文件时,假如资源文件名为:ApplicationResources.properties,并且客户端为中国用户,则会先读取
ApplicationResources_zh_CN.proterties(zh表示中文,CN表示中国),如果不存在则读取ApplicationResources_zh.properties,
如果还不存在,最后才会支读取ApplicationResources.properties。
②如果要修改客户端的语言:打开浏览器→工具→Internet选项→在选项卡中点击语言按钮修改相关信息。
6.如何将中文错误信息显示:
用文本编辑器来编辑资源文件,并保存,再将资源文件转换为unicode编码,在DOS命令下先找到资源文件目录,再输入以下代码
native2ascii [-unicode] 源文件 目标文件 或
native2ascii [-encoding gbk] 源文件 目标文件 并运行该命令就可
========================================================================================================
㈢在Action中业务有效性验证:
需注意:在Action中的execute方法中定义错误集合,并保存
ActionErrors errors=new ActionErrors();
saveErrors(request,errors);
========================================================================================================
㈣DispatchAction:
1.修改struts-config.xml文件中的<action>节点中添加一个 “parameter="参数名"” 属性。
2.修改Action时继承于DispatchAction,而其中的方法名应和上述的参数名相同
例:如果传递过来的参数是add,则会调用这个Action中的add方法,如果传递过来的是edit,则调用edit方法。
/********add方法********/
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
}
/********edit方法********/
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
}
3.再在各方法中进行操作和如何跳转。
注:由一个Action跳转到另一个Action时,在Structs-config.xml中的Action节点中,配置<forward>时:
<forward name="" path="另一个Action的path"/>
=======================================================================================================
㈤structs标签库:
1.<logic:iterate>标签:首先导入包
<%@ taglib uri="http://structs.apache.org/tags-logic" prefix="logic" %>
在页面中嵌入:
①.如果把查询到的数据封装到ActionForm中的属性中时,<logic:iterate>配置如下:
<logic:iterate id="名" name="指ActionForm的name" property="ActionForm的属性">
</logic:iterate>
在<logic:iterate>中id用于来输出时作为变量名,name表示指向哪个ActionForm,property则指的是ActionForm中拥有的属性
②.如果把查询到的数据封装到request.setAttribute("键",值); 中时,<logic:iterate>配置如下:
<logic:iterate id="名" name="request中的键">
</logic:iterate>
2.<bean:write>标签:导入包
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
标签语法:
<bean:write name="输出用到的键" property="属性名" format="格式化的格式" />
对于时间或金钱的输出时,我们可以用到<bean:write>中的format属性对它们进行格式化,例:
时间:<bean:write name="输出用到的键" property="属性名" format="yyyy年MM月dd日" />
金钱:<bean:write name="输出用到的键" property="属性名" format="#,###或####.00" />
3.<html:link>标签:导入包
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
标签语法:
<html:link page="jsp页面或其它的Action的path" paramId="用于传送的参数名"
paramName="需绑定的参数" paramProperty="属性名">
</html:link>
4.<html:select>标签:
标签语法:
<html:select property="ActionForm中需绑定的属性">
<html:optionsCollection property="ActionForm中集合属性" lable="用于显示的值" value="需用于传递的值"/>
</html:select>
注:如果集合不保存在ActionForm中的属性,而保存在request的属性中,则也可以用
<html:options>
[color=darkred][/color][size=xx-small][/size][/size][/size][/color]
[*]
[/list][size=xx-small]
㈠在Structs中如何解决中文乱码问题
1.在工程下建一个Servlet,让它实现javax.servlet.filter接口
2.在doFilter方法中添加如下代码:
request.setCharacterEncoding("gbk");//设置编码方式为gbk
chain.doFilter(request,response);//表示调用下一个过滤器,但必须在最后写,也表示在它后面能够再添加其它的过滤器
3.在web.xml中添加配置信息:
<filter>
<filter-name>给过滤器命一个名</filter-name>
<filter-class>过滤器类的路径</filter-class>
</filter>
<filter-mapping>
<filter-name></filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
======================================================================================================
㈡在Structs中弹出错误信息
1.在Structs-config.xml中添加配置信息,在<action>中添加属性:
<action validate="true" //表示支持ActionForm中验证方法
input="页面路径" //当验证不通过时,在这个页面显示错误信息
></action>
2.在ActionForm中的validate方法中添加对表单中输入的值验证,对于错误信息
ActionErrors errors=new ActionErrors();
errors.add("键",new ActionMessage("ApplicationResources.properties中的键"));
注意:在添加错误信息时,也可以这样写:
errors.add("(页面输出错误信息的)键",new ActionMessage("键",数组或多个参数));
此时在ApplicationResources.properties资源文件中改为:
键=……{0}…{1}……
这里的{0}、{1}等等代表数组中下标元素或参数的位置。
3.在ApplicationResources.properties资源文件中添加:
errors.header=<span style="color:red">
errors.footer=</span>
键=错误信息
4.在页面中输出:
<html:errors property="errors集合中的键">
5.提示:
①在读取资源文件时,假如资源文件名为:ApplicationResources.properties,并且客户端为中国用户,则会先读取
ApplicationResources_zh_CN.proterties(zh表示中文,CN表示中国),如果不存在则读取ApplicationResources_zh.properties,
如果还不存在,最后才会支读取ApplicationResources.properties。
②如果要修改客户端的语言:打开浏览器→工具→Internet选项→在选项卡中点击语言按钮修改相关信息。
6.如何将中文错误信息显示:
用文本编辑器来编辑资源文件,并保存,再将资源文件转换为unicode编码,在DOS命令下先找到资源文件目录,再输入以下代码
native2ascii [-unicode] 源文件 目标文件 或
native2ascii [-encoding gbk] 源文件 目标文件 并运行该命令就可
========================================================================================================
㈢在Action中业务有效性验证:
需注意:在Action中的execute方法中定义错误集合,并保存
ActionErrors errors=new ActionErrors();
saveErrors(request,errors);
========================================================================================================
㈣DispatchAction:
1.修改struts-config.xml文件中的<action>节点中添加一个 “parameter="参数名"” 属性。
2.修改Action时继承于DispatchAction,而其中的方法名应和上述的参数名相同
例:如果传递过来的参数是add,则会调用这个Action中的add方法,如果传递过来的是edit,则调用edit方法。
/********add方法********/
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
}
/********edit方法********/
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
}
3.再在各方法中进行操作和如何跳转。
注:由一个Action跳转到另一个Action时,在Structs-config.xml中的Action节点中,配置<forward>时:
<forward name="" path="另一个Action的path"/>
=======================================================================================================
㈤structs标签库:
1.<logic:iterate>标签:首先导入包
<%@ taglib uri="http://structs.apache.org/tags-logic" prefix="logic" %>
在页面中嵌入:
①.如果把查询到的数据封装到ActionForm中的属性中时,<logic:iterate>配置如下:
<logic:iterate id="名" name="指ActionForm的name" property="ActionForm的属性">
</logic:iterate>
在<logic:iterate>中id用于来输出时作为变量名,name表示指向哪个ActionForm,property则指的是ActionForm中拥有的属性
②.如果把查询到的数据封装到request.setAttribute("键",值); 中时,<logic:iterate>配置如下:
<logic:iterate id="名" name="request中的键">
</logic:iterate>
2.<bean:write>标签:导入包
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
标签语法:
<bean:write name="输出用到的键" property="属性名" format="格式化的格式" />
对于时间或金钱的输出时,我们可以用到<bean:write>中的format属性对它们进行格式化,例:
时间:<bean:write name="输出用到的键" property="属性名" format="yyyy年MM月dd日" />
金钱:<bean:write name="输出用到的键" property="属性名" format="#,###或####.00" />
3.<html:link>标签:导入包
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
标签语法:
<html:link page="jsp页面或其它的Action的path" paramId="用于传送的参数名"
paramName="需绑定的参数" paramProperty="属性名">
</html:link>
4.<html:select>标签:
标签语法:
<html:select property="ActionForm中需绑定的属性">
<html:optionsCollection property="ActionForm中集合属性" lable="用于显示的值" value="需用于传递的值"/>
</html:select>
注:如果集合不保存在ActionForm中的属性,而保存在request的属性中,则也可以用
<html:options>
[color=darkred][/color][size=xx-small][/size][/size][/size][/color]