java - 将表单参数从 JSP 发送到 Struts 操作类

标签 java forms jsp struts

我正在我正在构建的网站中实现搜索功能,其中包括通过提交的文件名称的 md5 哈希进行搜索以及通过与每个提交的文件关联的注释进行搜索。因此,我应该检测按下哪个按钮“按 MD5 搜索”或“按注释搜索”。这是我的代码:

表单的 JSP 代码:

<form id="search" name="search" action = "search.do"
        method="POST" enctype="multipart/form-data">
    <table align = "center">
        <tr>
            <th colspan="4" bgcolor="#004276"><font color="white">
                    Search for Sample 
            </th>
        </tr>
         <tr>
            <td><input name="md5" type="text" value="${form.md5}"/></td>
            <td><input name="md5search" type="submit" value="Search by MD5"/>
        </tr>
        <tr>
            <td><input name="notes" type="text" value="${form.notes}"/></td>
            <td><input name="notessearch" type="submit" value="Search by Notes"/>
        </tr>
    </table>
</form>

search.do 映射到 SearchResultsAction.java。处理请求的Java操作类(SearchResultsAction)中的代码是:

        if(request.getParameter("md5search").toString().equals("Search by MD5")){
            searchSubmissionsList = submissionsDAO.searchSubmissionsByMD5(form.getMD5());
        }

        if(request.getParameter("notessearch").toString().equals("Search by Notes")){
            searchSubmissionsList = submissionsDAO.searchSubmissionByNotes(form.getNotes());
        }

但是我在这里面临的问题是, request.getParameter("md5search") 和 request.getParameter("notessearch") 由于某种原因返回 null 。我已经研究这个问题有一段时间了,但一直没能弄清楚。奇怪的是,当我从事另一个项目时,它曾经对我有用。我在这里遗漏了什么吗?

最佳答案

这是 null因为你使用了 multipart/form-data表单编码而不是(默认)application/x-www-form-urlencoded 。基本上,您必须(让 Struts)从多部分表单数据主体中提取文本字段,就像您(或 Struts)提取上传文件一样。或者,实际上没有 <input type="file">表单中的字段,只需删除 enctype完全属性。

另请参阅

关于java - 将表单参数从 JSP 发送到 Struts 操作类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8317184/

相关文章:

jsp - 表达式语言中不允许 Javabean 函数为空?

javascript - 从 jsp onchange 下拉值调用 Javascript

php - 通过选择复选框来提交表单,并将结果显示在指定的 div 中

javascript - 使用 CSS 上下对齐按钮

java - 如何在jsp页面中将字符串显示为xml

java - 主要似乎跳过了我的方法之一

php - 希望使用 jquery 或 javascript 在窗口中弹出 php 表单验证错误

html - 如何在jsp中给整个div标签加下划线?

java - MySQL 将或不会返回重复行,具体取决于特定列是否存在。为什么?

java - 这里如何防止数字格式异常?