我可以以某种方式打印作为参数传递给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>
我可以这样做吗?
答案 0 :(得分: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的开头)。
答案 1 :(得分:1)
您是否尝试过使用set/getAttribute
代替set/getParameter
?