首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

struts form中的空字符串有关问题

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

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:nullage:0el:name:pwd:age:0

?

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

热点排行