Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 逻辑:当前未按预期工作_Jsp_Struts_Struts 1 - Fatal编程技术网

Jsp 逻辑:当前未按预期工作

Jsp 逻辑:当前未按预期工作,jsp,struts,struts-1,Jsp,Struts,Struts 1,为了尽可能清楚地说明我的问题,我已经将代码浓缩到最基本的部分 我希望格式化结果是好的-这是我第一次发布stackoverflow,无论我做了什么,缩进4个空格或使用ctrl-K,编译器都不高兴 My addAssignment.jsp正在显示头“Messages”,此时LinkedList应该是空的,并且看起来是空的。如果LinkedList中没有消息,我希望logic:present标记可以阻止打印标题“messages”。如果LinkedList中没有消息,如何防止打印标题“消息” <

为了尽可能清楚地说明我的问题,我已经将代码浓缩到最基本的部分

我希望格式化结果是好的-这是我第一次发布stackoverflow,无论我做了什么,缩进4个空格或使用ctrl-K,编译器都不高兴

My addAssignment.jsp正在显示头“Messages”,此时LinkedList应该是空的,并且看起来是空的。如果LinkedList中没有消息,我希望logic:present标记可以阻止打印标题“messages”。如果LinkedList中没有消息,如何防止打印标题“消息”

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  <title>Add Assignment Page</title>
  <style type="text/css">table { margin-left:5%; }</style>
</head>
<body>
  <table>
    <tr>
      <td>
        <logic:present name="messages">
          <h3>Messages:</h3>
          <logic:iterate id="msg" name="messages">
            <bean:write name="msg" /><br />
          </logic:iterate>
        </logic:present>
      </td>
    </tr>
  </table>
  <table>
    <tr>
      <td>
        <H1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add Assignment</H1>
      </td>
    </tr>
  </table>
  <html:form action="addAssignmentAction" focus="injuredWorkersFirstName">
    <table>
      <tr>
        <td>First name</td>
        <td>&nbsp;&nbsp;&nbsp;
            <html:text property="injuredWorkersFirstName" />
        </td>
      </tr>
      <tr>
        <td class="100PixCentered">&nbsp;</td>
        <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            &nbsp;&nbsp;&nbsp;&nbsp;<html:submit>submit</html:submit>
        </td>
      </tr>
    </table>
  </html:form>
</body>
</html>
Struts配置:

<struts-config>
  <data-sources></data-sources>
  <!-- ========== Form Bean Definitions =================================== -->
  <form-beans>
    <form-bean name="loginForm" type="package1.LoginForm" />
    <form-bean name="AddAssignmentForm" type="package1.AddAssignmentForm" />
  </form-beans>
  <!-- ========== Action Mapping Definitions ============================== -->
  <!-- Action Mappings Configuration -->
  <action-mappings>
    <action path="/login" type="package1.LoginAction" name="loginForm" 
        scope="request" validate="false" input="/index.jsp">
      <forward name="success" path="/addAssignment.jsp"></forward>
      <forward name="error" path="/index.jsp"></forward>
    </action>
    <action path="/addAssignmentAction" type="assignment.AddAssignmentAction" 
        name="AddAssignmentForm" scope="request" validate="false" 
        input="/addAssignment.jsp">
      <forward name="success" path="/mainMenu.jsp"></forward>
      <forward name="error" path="/addAssignment.jsp"></forward>
    </action>
  </action-mappings>
  <!-- ========== Message Resources Definitions =========================== -->
</struts-config>

您的期望是错误的。正如其名称和文档所示,
如果请求中存在值,则执行is body。属性是否是not的ampty列表无关紧要:属性存在,则执行主体

您应该改用标记,或者更好的是,忘记这些过时的逻辑标记,改用JSTL
标记:

<c:if test="${!empty messages}"> ... </c:if>
。。。
<c:if test="${!empty messages}"> ... </c:if>