在struts中的jsp中发布和获取url参数

时间:2015-09-16 07:58:32

标签: jsp struts

我正在尝试使用struts lib获取.jsp中url的参数,并使用该参数为jsp页面内的表单的action属性创建自定义url。

填充参数的JavaScript:

function openNewWindow(qtype) {
    var x = screen.width / 3;
    var y = screen.height / 3;

    window.open('FileUpload.jsp?q=' + qtype, 'UploadExelSheet',
            'height=250,width=400');

}

从javascript重定向到FileUpload.jsp后, jsp页面的示例网址: http://localhost:8080/QuizApp/FileUpload.jsp?q=1

以下是我尝试在FileUpload.jsp中获取'q'值并为操作表单创建自定义URL:

<html>
<head>
<title>File Uploading Form</title>
<meta http-equiv="refresh"
    content="${pageContext.session.maxInactiveInterval}; url=Timedout.jsp?type=timeout; charset=ISO-8859-1">
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<script src="js/myscript.js" type="text/javascript"></script>
</head>
<body>
    <h3>File Upload:</h3>
    Select a file to upload:
    <br />
    <c:set var="qtype" value="uploadq?q=${q}" />
    <s:url action="%{qtype}" var="myUrl"/>

    <s:form action="%{#myUrl}" method="post" enctype="multipart/form-data">
        <input type="file" name="upload" id="uploadfile" size="50" />
        <input type="submit" id="submit" />
    </s:form>
</body>
</html>

但它似乎不起作用。

1 个答案:

答案 0 :(得分:0)

你可以在jsp中得到你的q参数:

${param.q}

因此,在FileUpload.jsp中,您可以使用Struts2标记设置值(s:set insteaof c:set)以下代码:

<s:set var="qtype" value="uploadq?q=${param.q}" />

或者您可以使用以下代码构建URL:

<s:url id="myUrl" action="uploadq" var="myUrl">
    <s:param name="q">${param.q}</s:param>
</s:url> 

对于您的表单,您可以使用qtype或myUrlvar作为操作属性,使用OGNL,如下所示:

<s:form action="%{#qtype}" method="post" enctype="multipart/form-data">
        <input type="file" name="upload" id="uploadfile" size="50" />
        <input type="submit" id="submit" />
</s:form>

或者

<s:form action="%{#myUrl}" method="post" enctype="multipart/form-data">
        <input type="file" name="upload" id="uploadfile" size="50" />
        <input type="submit" id="submit" />
</s:form>

希望它有所帮助。