You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Lukasz Lenart (Jira)" <ji...@apache.org> on 2023/12/06 18:58:00 UTC
[jira] [Commented] (WW-5368) Access warning when get resource bundle which its name starts with "label"
[ https://issues.apache.org/jira/browse/WW-5368?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17793890#comment-17793890 ]
Lukasz Lenart commented on WW-5368:
-----------------------------------
The tag {{<s:select/>}} is on the top of the ValueStack when evaluating expressions {{{}%{...{}}}} so that's why you see the warning and access to {{getLabel()}} is blocked.
I would suggest adding a method to an action and used it instead of the expression, eg.
{code:java}
public String createLabel(String suffix) {
return getText("label.reasonOfTransaction." + suffix)
}
{code}
and the in the tag
{code:html}
<s:select name="reasonOfTransactionCode" list="reasonOfTransactionList"
listKey="top" listValue="%{createLabel(top)}"/>
{code}
> Access warning when get resource bundle which its name starts with "label"
> --------------------------------------------------------------------------
>
> Key: WW-5368
> URL: https://issues.apache.org/jira/browse/WW-5368
> Project: Struts 2
> Issue Type: Bug
> Components: Core
> Affects Versions: 6.3.0
> Reporter: Alireza Fattahi
> Priority: Critical
> Fix For: 6.4.0
>
>
> The below:
> {code:java}
> <s:select name="reasonOfTransactionCode" list="reasonOfTransactionList"
> listKey="top" listValue="%{getText('label.reasonOfTransaction.'+top)}"/> {code}
> generates this warning for each item in the list, so if the `reasonOfTransactionList` has seven items I see this error seven time:
> {code:java}
> ognl.SecurityMemberAccess: Access to non-public [protected java.lang.String org.apache.struts2.components.UIBean.label] is blocked!
>
> {code}
>
> But this works fine If I just rename resource bundle and removes `label` from its name
>
> {code:java}
> <s:select name="reasonOfTransactionCode" list="reasonOfTransactionList" listKey="top" listValue="%{getText('reasonOfTransaction.'+top)}"/> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)