0

我可以以某种方式打印作为参数传递给jsp的字符串吗?假设我有行动:package com.test;

 public class TestAction extends Action {

     String foo="bar";
   @Override
   public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
     //request.setParameter("foo", doo); // this does not work, I would like to achieve it. 
     return mapping.findForward("sql");
   }

 }

和jsp文件:

 <!DOCTYPE html>
 <%@page contentType="text/html"%>
 <%@page pageEncoding="UTF-8" %>
 <%@page import="com.test.TestAction" %>
 <%= request.getParameter("foo") %>

我在 struts-config.xml 中定义了:

 <action     
      name="loginForm"
      path="/login"
      scope="request"
      type="com.test.com.test.TestAction"
      validate="false">
          <forward name="sql" path="/index.jsp" />
 </action>

我可以做吗?

4

2 回答 2

4

你需要改变两件事:

  request.setParameter("foo", doo);

应该

  request.setAttribute("foo", doo);

<%= request.getParameter("foo") %>

应该

<c:out value="${request.foo}"/>

部分是为了可维护性,部分是为了防止注入攻击......除非您实际上希望doo包含有效(和安全)的 HTML 标签。(使用<c:out>假设你有

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

在您的 JSP 的开头)。

于 2012-09-17T12:43:26.957 回答
1

您是否尝试过使用set/getAttribute而不是set/getParameter

于 2012-09-17T12:32:03.797 回答