问题描述:
webwork的视图显示时,可以.jsp文件中直接使用格式<% String ret = (String)request.getAttribute("test1"); %>获取request中的对象数值,如果test1在request请求中不存在,它的值应是多少呢?
问题验证:
第一步:创建test.java文件,主要是通过request设置对象的值。
内容:
import com.opensymphony.webwork.ServletActionContext;
import com.opensymphony.xwork.Action;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import com.opensymphony.webwork.ServletActionContext;
import org.apache.commons.io.FileUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.opensymphony.xwork.ActionContext;
public class HelloWorldAction implements Action
{
protected HttpServletResponse response;
protected HttpServletRequest request;
protected Map session;
private static final long serialVersionUID = 7228637992665838810L;
private static String chmod = "chmod 775 ";
private static Log LOG = LogFactory.getLog(HelloWorldAction.class);
public String execute()
throws Exception
{
return SUCCESS;
}
public String test()
{
try{
ActionContext ctx = ActionContext.getContext();
request = (HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST);
String s = request.getParameter("test");
request.setAttribute("test", "1");
}catch (Exception e) {
LOG.error(e);
}
return SUCCESS;
}
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
public void setServletResponse(HttpServletResponse response) {
this.response = response;
}
public void setSession(Map session) {
this.session = session;
}
public HttpServletRequest getRequest() {
return request;
}
public void setRequest(HttpServletRequest request) {
this.request = request;
}
public HttpServletResponse getResponse() {
return response;
}
public void setResponse(HttpServletResponse response) {
this.response = response;
}
public Map getSession() {
return session;
}
}
第二步:创建test.ftl文件(点击next按钮跳转至test1.jsp,这样才能有request请求),test1.jsp文件,主要是获取对象的值。
test.jsp内容:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<%
//String ret = (String)request.getAttribute("test1"); the object doesn't exist and return null
String ret = (String)request.getAttribute("test"); //the object exist and return 1;
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>my test</title>
</head>
<body>
<table><tr><td><%=ret%></td></tr><table>
</body>
</html>
第三步:创建修改xwork.xml。
内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xwork PUBLIC
"-//OpenSymphony Group//XWork 1.1.1//EN"
"http://www.opensymphony.com/xwork/xwork-1.1.1.dtd">
<xwork>
<include file="webwork-default.xml"/>
<package name="default" extends="webwork-default">
<action name="hello" class="HelloWorldAction" method="test">
<result name="success" type="dispatcher">
<param name="location">test1.jsp</param>
</result>
</action>
</package>
</xwork>
结果:
>1. 如果对象在request中存在,则显示值 1
>2. 如果对象在request中不存在,则显示值 null
问题结论: