craigmcc 01/02/13 16:39:53
Modified: src/doc struts-html.xml
src/share/org/apache/struts/taglib/html BaseFieldTag.java
web/example logon.jsp
Log:
Partially restore the previous operation of the <html:password> tag.
Now, the <html:password> tag redisplays the existing contents of the
underlying property (echoed as asterisks on the HTML page, but visible in
the underlying page source) by default, in a manner consistent with the
way all other input fields redisplay their contents. However, you can
turn this redisplay off (as would be appropriate on a login page):
<html:password property="password" redisplay="false"/>
Revision Changes Path
1.11 +17 -0 jakarta-struts/src/doc/struts-html.xml
Index: struts-html.xml
===================================================================
RCS file: /home/cvs/jakarta-struts/src/doc/struts-html.xml,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- struts-html.xml 2001/02/13 18:42:57 1.10
+++ struts-html.xml 2001/02/14 00:39:51 1.11
@@ -2781,6 +2781,23 @@
</info>
</attribute>
+ <attribute>
+ <name>redisplay</name>
+ <required>false</required>
+ <rtexprvalue>true</rtexprvalue>
+ <info>
+ Boolean flag indicating whether or not existing values
+ will be redisplayed if they exist. Even though the
+ redisplayed value will be shown as asterisks on the
+ visible HTML page, the cleartext of the actual password
+ value will be visible though the "Show Page Source"
+ menu option of the client browser. You may wish to
+ set this value to <code>false</code> on login pages.
+ Defaults to <code>true</code> for consistency with
+ all other form tags that redisplay their contents.
+ </info>
+ </attribute>
+
<attribute>
<name>style</name>
<required>false</required>
1.4 +30 -6
jakarta-struts/src/share/org/apache/struts/taglib/html/BaseFieldTag.java
Index: BaseFieldTag.java
===================================================================
RCS file:
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/BaseFieldTag.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- BaseFieldTag.java 2001/02/01 00:48:07 1.3
+++ BaseFieldTag.java 2001/02/14 00:39:52 1.4
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/BaseFieldTag.java,v
1.3 2001/02/01 00:48:07 craigmcc Exp $
- * $Revision: 1.3 $
- * $Date: 2001/02/01 00:48:07 $
+ * $Header:
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/html/BaseFieldTag.java,v
1.4 2001/02/14 00:39:52 craigmcc Exp $
+ * $Revision: 1.4 $
+ * $Date: 2001/02/14 00:39:52 $
*
* ====================================================================
*
@@ -71,15 +71,17 @@
import javax.servlet.jsp.tagext.TagSupport;
import org.apache.struts.upload.FormFile;
import org.apache.struts.util.BeanUtils;
-import org.apache.struts.util.PropertyUtils;
import org.apache.struts.util.MessageResources;
+import org.apache.struts.util.PropertyUtils;
+import org.apache.struts.util.RequestUtils;
+import org.apache.struts.util.ResponseUtils;
/**
* Convenience base class for the various input tags for text fields.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.3 $ $Date: 2001/02/01 00:48:07 $
+ * @version $Revision: 1.4 $ $Date: 2001/02/14 00:39:52 $
*/
public abstract class BaseFieldTag extends BaseInputTag {
@@ -120,6 +122,20 @@
/**
+ * The "redisplay contents" flag (used only on <code>password</code>).
+ */
+ protected boolean redisplay = true;
+
+ public boolean getRedisplay() {
+ return (this.redisplay);
+ }
+
+ public void setRedisplay(boolean redisplay) {
+ this.redisplay = redisplay;
+ }
+
+
+ /**
* The type of input field represented by this tag (text, password, or
* hidden).
*/
@@ -170,7 +186,8 @@
results.append(" value=\"");
if (value != null) {
results.append(BeanUtils.filter(value));
- } else if (!"password".equals(type)) {
+ } else if (redisplay || !"password".equals(type)) {
+ /*
Object bean = pageContext.findAttribute(name);
if (bean == null)
throw new JspException
@@ -199,6 +216,12 @@
throw new JspException
(messages.getMessage("getter.method", property, name));
}
+ */
+ Object value = RequestUtils.lookup(pageContext, name, property,
+ null);
+ if (value == null)
+ value = "";
+ results.append(ResponseUtils.filter(value.toString()));
}
results.append("\"");
results.append(prepareEventHandlers());
@@ -228,6 +251,7 @@
super.release();
accept = null;
name = Constants.BEAN_KEY;
+ redisplay = true;
}
1.16 +2 -1 jakarta-struts/web/example/logon.jsp
Index: logon.jsp
===================================================================
RCS file: /home/cvs/jakarta-struts/web/example/logon.jsp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- logon.jsp 2001/01/27 23:31:14 1.15
+++ logon.jsp 2001/02/14 00:39:52 1.16
@@ -28,7 +28,8 @@
<bean:message key="prompt.password"/>
</th>
<td align="left">
- <html:password property="password" size="16" maxlength="16"/>
+ <html:password property="password" size="16" maxlength="16"
+ redisplay="false"/>
</td>
</tr>