下载此Struts文本框示例– Struts-TextBox-Example.zip
在此Struts示例中,您将学习如何使用Struts <html:text>标签创建HTML文本框输入字段,如何使用ActionForm验证文本框,使用ActionErrors显示错误消息,以及JSP页面中的消息资源。
1.文件夹结构
这是Maven创建的最终项目结构。 请创建相应的文件夹。
2.动作课
创建一个Action类,只转发请求。
UserAction.java
package com.mkyong.common.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class UserAction extends Action{
public ActionForward execute(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response)
throws Exception {
return mapping.findForward("success");
}
}
3.属性文件
创建一个属性文件,并声明错误和标签消息。
通用属性
#common module error message
error.common.name.required = Name is required.
#common module label message
label.common.name = UserName
label.common.button.submit = Submit
label.common.button.reset = Reset
4. ActionForm
创建一个ActionForm,接受一个用户名并在validate()方法中对其进行验证。 如果用户名为空,则从上述属性文件中获取一条错误消息,并将其添加为ActionErrors中的键“ common.name.err ”,以后将使用该名称“ common.name.err ”在JSP中显示该错误消息。 。
UserForm.java
package com.mkyong.common.form;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
public class UserForm extends ActionForm{
String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Override
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
if( getUsername() == null || ("".equals(getUsername()))) {
errors.add("common.name.err",
new ActionMessage("error.common.name.required"));
}
return errors;
}
@Override
public void reset(ActionMapping mapping, HttpServletRequest request) {
// reset properties
username = "";
}
}
5. JSP页面
使用Struts的HTML标签<html:text>创建一个HTML文本框输入字段。 标签消息在上面的属性文件中声明,您可以直接通过<bean:message key =“ label_name” />获得它。
错误消息可以两种方式显示:
- 显示所有错误消息
- 通过指定在ActionErrors中声明的错误消息键来显示指定的错误消息。
login.jsp
Struts html:text example
显示文本框输入。
welcome.jsp
Welcome
6. struts-config.xml
创建一个Struts配置文件并将其链接在一起。
有效标签属性:
- 路径=您访问的网络路径
- 类型=您的动作班
- 名称=您的行动表格
- validate = true将导致ActionForm进行表单验证的validate()方法
- 输入=如果验证为假,该转发到哪里?
您必须在struts-config.xml文件中包含属性文件,以使Struts知道您的自定义资源消息。
<message-resources
parameter="com.mkyong.common.properties.Common" />
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">
<struts-config>
<form-beans>
<form-bean
name="userForm"
type="com.mkyong.common.form.UserForm"/>
</form-beans>
<action-mappings>
<action
path="/LoginPage"
type="org.apache.struts.actions.ForwardAction"
parameter="/pages/login.jsp"/>
<action
path="/Login"
type="com.mkyong.common.action.UserAction"
name="userForm"
validate="true"
input="/pages/login.jsp"
>
<forward name="success" path="/pages/welcome.jsp"/>
</action>
</action-mappings>
<message-resources
parameter="com.mkyong.common.properties.Common" />
</struts-config>
7. web.xml
最后一步,为Strut框架集成创建一个web.xml。
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Maven Struts Examples</display-name>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>
/WEB-INF/struts-config.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
访问它
http:// localhost:8080 / StrutsExample / LoginPage.do
如果用户未填写文本框并按提交按钮,则会显示一条错误消息。
如果用户填写文本框,然后按提交按钮。
它将文本框输入值传递到欢迎页面并显示它。
翻译自: https://mkyong.com/struts/struts-htmltext-textbox-example/