如果页面中没有<input>,用jsp脚本在后台接受到的字符串为null,以及空对象;如果用EL表达式,则接收到的为空串" ";
如果页面中有<input>,没有输入值,则接收到的均为空串" "。
下面是测试代码:
1.struts-config.xml:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<form-beans>
<form-bean name="blankFieldActionForm" type="com.codedestiny.struts.BlankFieldActionForm">
</form-bean>
</form-beans>
<action-mappings>
<action path="/blankfield" type="com.codedestiny.struts.BlankFieldTestAction" name="blankFieldActionForm" scope="request">
<forward name="success" path="/blankfield-success.jsp"></forward>
</action>
</action-mappings>
<message-resources parameter="MessageResources" />
</struts-config>

2.index.jsp,只有姓名的<input>输入:

<%...@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<hr>
<li>测试空字段</li><br>
<form action="blankfield.do">
Name : <input type="text" name="name"><br>
<input type="submit" value="save"><br>
</form>
</body>
</html>
3.BlankFieldActionForm.java(不只包括姓名,还包括年龄以及性别属性):
package com.codedestiny.struts;
import org.apache.struts.action.ActionForm;

public class BlankFieldActionForm extends ActionForm ...{
private String name;
private int age;
private String sex;

public String getName() ...{
return name;
}
public void setName(String name) ...{
this.name = name;
}
public int getAge() ...{
return age;
}
public void setAge(int age) ...{
this.age = age;
}
public String getSex() ...{
return sex;
}
public void setSex(String sex) ...{
this.sex = sex;
}
}
4.BlankFieldTestAction.java:
package com.codedestiny.struts;
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 BlankFieldTestAction extends Action ...{

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception ...{
return mapping.findForward("success");
}
}
5.blankfield-success.jsp:

<%...@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%...@page import="com.codedestiny.struts.*;"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<h1>测试空字段</h1>
<hr>
<li>JSP方式接收</li><br>
<%...
BlankFieldActionForm bf = (BlankFieldActionForm)request.getAttribute("blankFieldActionForm");
%>
Name : <%=bf.getName()%><br>
Age : <%=bf.getAge()%><br>
Sex : <%=bf.getSex()%><br>
<hr>
<li>JSTL(EL表达式)方式接收</li><br>
Name : ${blankFieldActionForm.name}<br>
Age : ${blankFieldActionForm.age}<br>
Sex : ${blankFieldActionForm.sex}<br>
</body>
</html>
本文介绍了一个使用Struts框架进行表单提交测试的例子。通过创建包含不同字段的表单,观察并记录提交时各字段的接收情况。具体探讨了在表单中存在或不存在<input>元素时,如何利用JSP脚本和EL表达式来处理这些字段。
374

被折叠的 条评论
为什么被折叠?



