struts form中的空字符串问题

 struts form定义的字段数比表单中提交的字段多的时候.那么多余的字段就会有空字符串的问题.

具体如下:以下表单中只有一个name,而form中定义了name,age,pwd

那么我们比较在返回的文件blankResult.jsp中使用jsp和el表达式取得值的不同..

配置:

<form-bean name="blankForm" type="com.lwf.struts.form.BlankForm"></form-bean>
<action path="/blankAction" type="com.lwf.struts.action.BlankAction" name="blankForm" >
	<forward name="success" path="/blankResult.jsp"></forward>
</action>

 blank.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="blankAction.do" method="post">
	name:<input type="text" name="name"/>
	<input type="submit" value="submit"></input>
</form>
</body>
</html>

 

blankForm.java

package com.lwf.struts.form;

import org.apache.struts.action.ActionForm;

public class BlankForm extends ActionForm {

	private String name;
	private String pwd;
	private int age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}

 

 

BlankAction.java

package com.lwf.struts.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;

import com.lwf.struts.form.BlankForm;

public class BlankAction extends Action {

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

}

 

 

上面过程中没有做任何处理..

但我们知道struts源码中会自动将BlankForm设置到request或session中去.

blankResult.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@page import="com.lwf.struts.*,com.lwf.struts.form.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	BlankForm blankForm = (BlankForm)session.getAttribute("blankForm");
%>
jsp:<br>
	name:<%=blankForm.getName()%><br>
	pwd:<%=blankForm.getPwd()%><br>
	age:<%=blankForm.getAge()%><br>
	
el:<br>
	name:${blankForm.name }<br>
	pwd:${blankForm.pwd }<br>
	age:${blankForm.age }<br>
</body>
</html>

 

显示结果为:

jsp:
name:
pwd:null
age:0


el:
name:
pwd:
age:0

 

可以看到使用EL的时候会自动将null转换为""...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值