2015-04-27 2 views
3

Я пытаюсь создать ссылку для каждой строки в моем списке строк. Эта ссылка вызовет действие и передаст параметр (действие getStudentById, проходящее в studentId). Я пробовал несколько способов заставить это работать, ища в interwebs, однако, не повезло. Самая последняя попытка приводит к тому, что каждая ссылка имеет URL-адрес «www.com», о котором я не знаю, откуда это происходит. Ниже приведены несколько файлов для рассмотрения, пытаясь помочь мне понять, что происходит не так.Использование s: url in s: a в struts2

WinnerAcknowledgement.jsp

<!DOCTYPE html> 
<%@ taglib prefix="s" uri="/struts-tags" %> 
<html> 
    <head> 
     <link rel="stylesheet" href="${pageContext.request.contextPath}/js/jquery/jquery-ui-1.11.4/jquery-ui.css" type="text/css" media="all"/> 
     <link rel="stylesheet" href="${pageContext.request.contextPath}/js/jquery/jquery-ui-1.11.4/jquery-ui.theme.css" type="text/css" media="all"/> 
     <link rel="stylesheet" href="${pageContext.request.contextPath}/css/bootstrap/bootstrap-datepicker.css" type="text/css" /> 
     <link rel="stylesheet" href="${pageContext.request.contextPath}/css/survey_bh.css" type="text/css" /> 
     <link rel="stylesheet" href="${pageContext.request.contextPath}/css/style_bh.css" type="text/css" /> 
    </head> 
    <body> 
     <a href='index.jsp'>Home</a> 
     <p>Survey saved!</p> 
     <p>Congratulations! You're the winner of the raffle and have just won two movie tickets.</p> 
     <div> 
      <s:set var="mean" value="db.mean"/> 
      <s:set var="standardDeviation" value="db.standardDeviation"/> 
      <p><span><strong>Mean:</strong></span>&nbsp;&nbsp;<span><s:number name="%{mean}" type="number" /></span></p> 
      <p><span><strong>Standard Deviation:</strong></span>&nbsp;&nbsp;<span><s:number name="%{standardDeviation}" type="number" /></span></p> 
     </div> 
     <div> 
      <p>Students:</p> 
      <ul> 
       <s:iterator value="studentIds" status="status"> 
        <s:url action="getStudentById" includeParams="get" var="url"> 
         <s:param name="studentId"><s:property/></s:param> 
        </s:url> 
        <li> 
         <s:a href="%{url}"><s:property/></s:a> 
        </li> 
       </s:iterator> 
      </ul> 
     </div> 
    </body> 
</html> 

struts.xml

<!--?xml version="1.0" encoding="UTF-8" ?--> 
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> 
<struts> 
    <constant name="struts.enable.DynamicMethodInvocation" value="false"></constant> 
    <constant name="struts.devMode" value="false"></constant> 
    <constant name="struts.custom.i18n.resources" value="ApplicationResources"></constant> 

    <package name="default" extends="struts-default" namespace="/"> 
    <action name="getStudentById" class="com.action.SurveyAction" method="getStudentById"> 
     <result name="success">Student.jsp</result> 
     <result name="error">NoSuchStudent.jsp</result> 
    </action> 
    <action name="saveSurvey" class="com.action.SurveyAction" method="saveSurvey"> 
     <result name="simple">SimpleAcknowledgement.jsp</result> 
     <result name="winner">WinnerAcknowledgement.jsp</result> 
     <result name="error">error.jsp</result> 
    </action> 
    </package> 
</struts> 
+0

Показать сгенерированный html. –

ответ

0

Вместо:

<s:iterator value="studentIds" status="status"> 
    <s:url action="getStudentById" includeParams="get" var="url"> 
     <s:param name="studentId"><s:property/></s:param> 
    </s:url> 
    <li> 
     <s:a href="%{url}"><s:property/></s:a> 
    </li> 
</s:iterator> 

Я просто попытался это, и она работала:

<s:iterator value="studentIds" status="status"> 
    <s:url action="getStudentById" includeParams="get" var="url"> 
     <s:param name="studentId"><s:property/></s:param> 
    </s:url> 
    <li> 
     <s:a href="%{#url}"><s:property/></s:a> 
    </li> 
</s:iterator> 

Разница в% {url} vs% {# url}

Смежные вопросы