You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Andreas Krüger (JIRA)" <ji...@apache.org> on 2009/10/29 14:04:50 UTC

[jira] Commented: (WW-3306) Null value accepted from action property, but not model property when throwExceptionOnFailure=true

    [ https://issues.apache.org/struts/browse/WW-3306?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=46990#action_46990 ] 

Andreas Krüger commented on WW-3306:
------------------------------------

For details:

I'm using this Action class:

public class StrutsBugAction implements ModelDriven<StrutsBugModel>, Action {
    
    private final StrutsBugModel model = new StrutsBugModel();
    private boolean bomb = false;
    
    public StrutsBugAction() {}

    public StrutsBugModel getModel() {
        return model;
    }

    public String getActionprop() {
        return null;
    }
    
    public void setActionprop(String actionProp) {
    }

    public String execute() {
        return SUCCESS;
    }

    public boolean getBomb() {
        return bomb;
    }

    public void setBomb(boolean bomb) {
        this.bomb = bomb;
    }
}

I'm using this Model class:

public class StrutsBugModel {
    public String getModelprop() {return null;}
    public void setModelprop(String foo) {}
}


I'm using this JSP as a view:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Weird struts behaviour</title>
</head>
<body>
<h1>Weird struts behaviour</h1>

<p style="font-size:120%">See <a href="https://issues.apache.org/struts/browse/WW-3306">https://issues.apache.org/struts/browse/WW-3306</a> .</p>

<h2>All of these work</h2>

<s:if test="modelprop == null">
    <p>Property <code>modelprop</code> from the model is null, as <code>&lt;s:if></code> is happy to tell us.</p>
</s:if>
<s:else>
    <p>Property <code>modelprop</code> from the model is not null. (Well, it is, so this text never shows.)</p>
</s:else>

<s:if test="actionprop == null">
    <p>Property <code>actionprop</code> from the action is null, as <code>&lt;s:if></code> is happy to tell us.</p>
</s:if>
<s:else>
    <p>Property <code>actionprop</code> from the action is not null. (Well, it is, so this text never shows.)</p>
</s:else>

<p>Applying a null into the text, from an action property, here it comes: &ldquo;<s:property value="actionprop" />&rdquo; -
this works and causes no problems, even though we have set
<code>struts.el.throwExceptionOnFailure=true</code> in <code>struts.properties</code> .</p>

<h2>This does not work</h2>

<p>Applying a null into the text, from a <em>model</em> property, using exactly the same code as above,
does not work whenever we have set
<code>struts.el.throwExceptionOnFailure=true</code> in <code>struts.properties</code>.
The only difference is that this is a property from a model, not one from an action.</p>

<s:if test="bomb">
   <p>&ldquo;<s:property value="modelprop" />&rdquo;</p> 
</s:if>
<s:else>
   <p><s:a ><s:param name="bomb" value="true"/>Click here</s:a> to expose the bug.</p>
</s:else>
</body>
</html>


> Null value accepted from action property, but not model property when throwExceptionOnFailure=true
> --------------------------------------------------------------------------------------------------
>
>                 Key: WW-3306
>                 URL: https://issues.apache.org/struts/browse/WW-3306
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Value Stack
>    Affects Versions: 2.1.8
>            Reporter: Andreas Krüger
>
> In this project, we experiment with setting struts.el.throwExceptionOnFailure=true to catch errors.
> We use <s:property value="myprop" /> in our JSP.
> Occasionally, the property thus referenced is null. We want struts to insert an empty string in that case.
> This it duely does, when either struts.el.throwExceptionOnFailure=false or when the property is from an action object.
> However, if the property is from a model object and struts.el.throwExceptionOnFailure=true, this bombs out.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.