config.jsp
=====================================================================<%@ page contentType="text/html; charset=UTF-8"%>
<%@page isELIgnored="false"%>
<%@ include file="/inc/taglibs.jsp"%>html>
<head>
<title>test</title>
</head> <body>
<logic:equal name="configForm" property="isTrue" value="true">
<TABLE>
<tr>
<td height="20" colspan="2"> <p align="left"> <strong>选择用户名:</strong> </p> </td>
</tr>
</TABLE>
</logic:equal>
</body></html>
====================================================ConfigAction.java
====================================================
public class ConfigAction extends DispatchAction { // --------------------------------------------------------- Instance Variables // --------------------------------------------------------- Methods public ActionForward show(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
ConfigForm configForm = (ConfigForm) form;
Boolean isTrue = new Boolean(true);
request.setAttribute("isTrue",isTrue);
return mapping.getInputForward();
}
}
============================================
ConfigForm.java
=============================================
public class ConfigForm extends ActionForm {
private boolean isTrue;
public boolean getIsTrue() {
return isTrue;
} public void setIsTrue(Boolean isTrue) {
this.isTrue = isTrue.booleanValue();
}
}
=======================================================因为是在原有代码上改动,所以config文件是没有问题的,但是就是setAttribute没有起作用
=====================================================================<%@ page contentType="text/html; charset=UTF-8"%>
<%@page isELIgnored="false"%>
<%@ include file="/inc/taglibs.jsp"%>html>
<head>
<title>test</title>
</head> <body>
<logic:equal name="configForm" property="isTrue" value="true">
<TABLE>
<tr>
<td height="20" colspan="2"> <p align="left"> <strong>选择用户名:</strong> </p> </td>
</tr>
</TABLE>
</logic:equal>
</body></html>
====================================================ConfigAction.java
====================================================
public class ConfigAction extends DispatchAction { // --------------------------------------------------------- Instance Variables // --------------------------------------------------------- Methods public ActionForward show(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
ConfigForm configForm = (ConfigForm) form;
Boolean isTrue = new Boolean(true);
request.setAttribute("isTrue",isTrue);
return mapping.getInputForward();
}
}
============================================
ConfigForm.java
=============================================
public class ConfigForm extends ActionForm {
private boolean isTrue;
public boolean getIsTrue() {
return isTrue;
} public void setIsTrue(Boolean isTrue) {
this.isTrue = isTrue.booleanValue();
}
}
=======================================================因为是在原有代码上改动,所以config文件是没有问题的,但是就是setAttribute没有起作用
Boolean isTrue = new Boolean(true);
configForm.setIsTrue(isTrue);
request.setAttribute("configForm ",configForm);
request.setAttribute("isTrue",isTrue);
在里面存放的是Boolean 对象,当然和你的"true"字符串对象equals不等拉
改为
request.setAttribute("isTrue",isTrue.toString());
再看看
这行代码是干什么用的?isTrue在哪里用到了?<logic:equal name="configForm" property="isTrue" value="true">configForm表单的isTrue属性什么时候附值的?
你的JSP,Form,Action的关系是什么样的?
修改了一下代码:
在ConfigAction中添加: configForm.setIsTrue("1")
另外吧,ConfigForm中的isTrue属性改为了String型
这样我用
<logic:equal name="configForm" property="isTrue" value="1">
来做判断
现在的问题是,jsp根本找不到isTrue这个属性
因为我测试的时候用
<logic:notPresent name="configForm" property="isTrue">
来判断的时候结果为真...
我看书上是在pageContext里设置javabean
是不是对应的FormBean还需要其他的一些配置才能被jsp感知到?
如果从 config.jsp 到ConfigAction(ConfigForm),再到其他的JSP,
那不特殊处理config.jsp里边肯定没有configForm BEAN了
然后request.setAttribute("flag",flag)
但是测试时请求show方法后,
<logic:notPresent name="flag">还是为真...
给分结帖了