You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by albert kao <al...@gmail.com> on 2017/11/06 11:23:56 UTC

Error on line 25, column 9 in template/simple/radiomap.ftl

My program below caused FreeMarker template error .
Please help.
Thanks.

Java:
import java.util.ArrayList;
import java.util.List;
tcma
import com.mkyong.common.model.Language;
import com.opensymphony.xwork2.ActionSupport;

public class RadioButtonAction extends ActionSupport{
private List<String> myGoodList;
public RadioButtonAction(){
myGoodList = new ArrayList<String>();
myGoodList.add("myGoodList3");
myGoodList.add("myGoodList2");
myGoodList.add("myGoodList1");

}
public List<String> getMyGoodList() {
return myGoodList;
}

public String execute() {
return SUCCESS;
}
public String display() {
return NONE;
}

}


jsp:
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
</head>

<body>
<h1>Struts 2 radio button & select  example</h1>

<s:form action="resultAction" namespace="/">

<h4>


<s:iterator value="myGoodList" var="some2">
    <s:radio key="selectedId" list="#some2" listKey="key"
listValue="value"/><br/>
</s:iterator >


</h4>



<s:submit value="submit" name="submit" />
</s:form>

</body>
</html>


Struts 2 radio button & select example
selectedId:
*FreeMarker template error!*



Error on line 25, column 9 in template/simple/radiomap.ftl
stack.findValue(parameters.listKey) is undefined.
It cannot be assigned to itemKey
The problematic instruction:
----------
==&gt; assignment: itemKey=stack.findValue(parameters.listKey) [on
line 25, column 9 in template/simple/radiomap.ftl]
 in user-directive s.iterator [on line 23, column 1 in
template/simple/radiomap.ftl]
 in include "/${parameters.templateDir}/simple/radiomap.ftl" [on line
25, column 1 in template/xhtml/radiomap.ftl]
----------

Java backtrace for programmers:
----------
freemarker.core.InvalidReferenceException: Error on line 25, column 9
in template/simple/radiomap.ftl
stack.findValue(parameters.listKey) is undefined.
It cannot be assigned to itemKey
	at freemarker.core.Assignment.accept(Assignment.java:111)
	at freemarker.core.Environment.visit(Environment.java:209)
	at freemarker.core.IfBlock.accept(IfBlock.java:82)
	at freemarker.core.Environment.visit(Environment.java:209)
	at freemarker.core.MixedContent.accept(MixedContent.java:92)
	at freemarker.core.Environment.visit(Environment.java:209)
	at freemarker.core.Environment.visit(Environment.java:298)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:130)
	at freemarker.core.Environment.visit(Environment.java:209)
	at freemarker.core.MixedContent.accept(MixedContent.java:92)
	at freemarker.core.Environment.visit(Environment.java:209)
	at freemarker.core.Environment.include(Environment.java:1482)
	at freemarker.core.Include.accept(Include.java:169)
	at freemarker.core.Environment.visit(Environment.java:209)
	at freemarker.core.MixedContent.accept(MixedContent.java:92)
	at freemarker.core.Environment.visit(Environment.java:209)
	at freemarker.core.Environment.process(Environment.java:189)
	at freemarker.template.Template.process(Template.java:237)
	at org.apache.struts2.components.template.FreemarkerTemplateEngine.renderTemplate(FreemarkerTemplateEngine.java:182)
	at org.apache.struts2.components.UIBean.mergeTemplate(UIBean.java:559)
	at org.apache.struts2.components.UIBean.end(UIBean.java:513)
	at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
	at org.apache.jsp.pages.radiobutton_jsp._jspx_meth_s_005fradio_005f0(radiobutton_jsp.java:248)
	at org.apache.jsp.pages.radiobutton_jsp._jspx_meth_s_005fiterator_005f0(radiobutton_jsp.java:212)
	at org.apache.jsp.pages.radiobutton_jsp._jspx_meth_s_005fform_005f0(radiobutton_jsp.java:161)
	at org.apache.jsp.pages.radiobutton_jsp._jspService(radiobutton_jsp.java:111)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:402)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:346)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:81)
	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
	at io.undertow.jsp.JspFileHandler.handleRequest(JspFileHandler.java:32)
	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:274)
	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchToPath(ServletInitialHandler.java:209)
	at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImpl(RequestDispatcherImpl.java:221)
	at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImplSetup(RequestDispatcherImpl.java:147)
	at io.undertow.servlet.spec.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:111)
	at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:154)
	at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
	at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:362)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266)
	at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
	at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
	at com.opensymphony.xwork2.interceptor.ScopedMode&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Struts Problem Report&lt;/title&gt;
    &lt;style&gt;
    	pre {
	    	margin: 0;
	        padding: 0;
	    }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;h2&gt;Struts Problem Report&lt;/h2&gt;
    &lt;p&gt;
    Struts has detected an unhandled exception:
    &lt;/p&gt;


&lt;div id="exception-info"&gt;
&lt;table&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;strong&gt;Messages&lt;/strong&gt;:&lt;/td&gt;
        &lt;td&gt;
            &lt;ol&gt;
                        &lt;li&gt;Error on line 25, column 9 in
template/simple/radiomap.ftl
stack.findValue(parameters.listKey) is undefined.
It cannot be assigned to itemKey&lt;/li&gt;
                        &lt;li&gt;Error on line 25, column 9 in
template/simple/radiomap.ftl
stack.findValue(parameters.listKey) is undefined.
It cannot be assigned to itemKey - Class: freemarker.core.Assignment
File: Assignment.java
Method: accept
Line: 111 - freemarker/core/Assignment.java:111:-1&lt;/li&gt;
            &lt;/ol&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;strong&gt;File&lt;/strong&gt;:&lt;/td&gt;
        &lt;td&gt;freemarker/core/Assignment.java&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;strong&gt;Line number&lt;/strong&gt;:&lt;/td&gt;
        &lt;td&gt;111&lt;/td&gt;
    &lt;/tr&gt;

&lt;/table&gt;
&lt;/div&gt;


&lt;div id="stacktraces"&gt;
&lt;hr /&gt;
&lt;h3&gt;Stacktraces&lt;/h3&gt;
&lt;div class="stacktrace" style="padding-left: 0em"&gt;
    &lt;strong&gt;org.apache.jasper.JasperException: Error on line 25,
column 9 in template/simple/radiomap.ftl
stack.findValue(parameters.listKey) is undefined.
It cannot be assigned to itemKey - Class: freemarker.core.Assignment
File: Assignment.java
Method: accept
Line: 111 - freemarker/core/Assignment.java:111:-1&lt;/strong&gt;
    &lt;div&gt;
    &lt;pre&gt;
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:473)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:402)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:346)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
    io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:81)
    io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    io.undertow.jsp.JspFileHandler.handleRequest(JspFileHandler.java:32)
    io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:274)
    io.undertow.servlet.handlers.ServletInitialHandler.dispatchToPath(ServletInitialHandler.java:209)
    io.undertow.servlet.spec.RequestDispatcherImpl.forwardImpl(RequestDispatcherImpl.java:221)
    io.undertow.servlet.spec.RequestDispatcherImpl.forwardImplSetup(RequestDispatcherImpl.java:147)
    io.undertow.servlet.spec.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:111)
    org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:154)
    org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
    com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:362)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266)
    com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
    org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
    org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
    io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
    io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
    io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
    io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
    io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
    io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
    io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
    io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
    io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
    io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
    io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
    io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
    io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)
    io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:805)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    java.lang.Thread.run(Thread.java:748)
    &lt;/pre&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;div class="stacktrace" style="padding-left: 2em"&gt;
    &lt;strong&gt;Error on line 25, column 9 in template/simple/radiomap.ftl
stack.findValue(parameters.listKey) is undefined.
It cannot be assigned to itemKey - Class: freemarker.core.Assignment
File: Assignment.java
Method: accept
Line: 111 - freemarker/core/Assignment.java:111:-1&lt;/strong&gt;
    &lt;div&gt;
    &lt;pre&gt;
    org.apache.struts2.components.UIBean.end(UIBean.java:515)
    org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
    org.apache.jsp.pages.radiobutton_jsp._jspx_meth_s_005fradio_005f0(radiobutton_jsp.java:248)
    org.apache.jsp.pages.radiobutton_jsp._jspx_meth_s_005fiterator_005f0(radiobutton_jsp.java:212)
    org.apache.jsp.pages.radiobutton_jsp._jspx_meth_s_005fform_005f0(radiobutton_jsp.java:161)
    org.apache.jsp.pages.radiobutton_jsp._jspService(radiobutton_jsp.java:111)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:402)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:346)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
    io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:81)
    io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    io.undertow.jsp.JspFileHandler.handleRequest(JspFileHandler.java:32)
    io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:274)
    io.undertow.servlet.handlers.ServletInitialHandler.dispatchToPath(ServletInitialHandler.java:209)
    io.undertow.servlet.spec.RequestDispatcherImpl.forwardImpl(RequestDispatcherImpl.java:221)
    io.undertow.servlet.spec.RequestDispatcherImpl.forwardImplSetup(RequestDispatcherImpl.java:147)
    io.undertow.servlet.spec.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:111)
    org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:154)
    org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
    com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:362)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266)
    com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
    org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87<span
class="sewrr1gpm3wv3lv"></span><span class="sewnw4p1ome92mj"></span>

Re: Error on line 25, column 9 in template/simple/radiomap.ftl

Posted by Yasser Zamani <ya...@live.com>.

On 11/6/2017 2:53 PM, albert kao wrote:
>      <s:radio key="selectedId" list="#some2" listKey="key"
> listValue="value"/><br/>

I see that myGoodList is List<String> and String does not have 
properties named key and value. Please try defining a class named MyGood 
which has getKey and getValue methods then define myGoodList as 
List<MyGood>.

Re: Error on line 25, column 9 in template/simple/radiomap.ftl

Posted by Yasser Zamani <ya...@live.com>.

On 11/8/2017 3:49 PM, albert kao wrote:
> However, the same error occurred when my jsp page is changed to the
> following.
> Please help. Thanks.
> 
> <s:iterator value="myGoodList">
>    <s:radio theme="simple" name="test" list="#{key:value}"/><br>
> </s:iterator>

I think you want something like

<s:iterator value="myGoodList" status="rowStatus">
    <s:radio theme="simple" name="test" 
list="myGoodList[%{#rowStatus.index}]"/><br>
</s:iterator>

where myGoodList is a List<Map>

If you want to simply show radio buttons list, radio tag can do without 
an iterator e.g.

<s:radio theme="simple" name="test" list="myGoodList"/>

where myGoodList should be a Map.

Re: Error on line 25, column 9 in template/simple/radiomap.ftl

Posted by albert kao <al...@gmail.com>.
Your suggestion is good!
My problem is solved.
However, the same error occurred when my jsp page is changed to the
following.
Please help. Thanks.

<s:iterator value="myGoodList">
  <s:radio theme="simple" name="test" list="#{key:value}"/><br>
</s:iterator>

On Mon, Nov 6, 2017 at 9:04 AM, Yasser Zamani <ya...@live.com>
wrote:

>
>
> On 11/6/2017 4:37 PM, Yasser Zamani wrote:
> > then define myGoodList as List<MyGood>
>
> As you want to use inside an iterator, I think you want myGoodList as
> List<List<MyGood>>.
>

Re: Error on line 25, column 9 in template/simple/radiomap.ftl

Posted by Yasser Zamani <ya...@live.com>.

On 11/6/2017 4:37 PM, Yasser Zamani wrote:
> then define myGoodList as List<MyGood>

As you want to use inside an iterator, I think you want myGoodList as 
List<List<MyGood>>.