繁体   English   中英

Map 中的 null 值<string,string></string,string>

[英]null value in Map<String,String>

根据以下代码设置 map 时遇到问题。 这样从用户那里接收到参数的值,但是在map中按相关键输入值后,打印出null。 请指导我

public class ImportBatchCardRespServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;
    private FileOutputStream out;

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        try {
            // Path path = Paths.get("F:\\");
            System.out.println("ImportBatchCardRespServlet-AccessFilesPath: " + getInitParameter("AccessFilesPath")); // vahid-log
            Path path = Paths.get(getInitParameter("AccessFilesPath"));

            // List<FileItem> items = new ServletFileUpload(new
            // DiskFileItemFactory()).parseRequest(request);
            List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory())
                    .parseRequest(new ServletRequestContext(req));
            Map<String,String> formFields = new HashMap<>();
            
            for (FileItem item : items) {
                if (item.isFormField()) {
                    // Process regular form field (input type="text|radio|checkbox|etc", select,
                    // etc).
                    String fieldName = item.getFieldName();
                    String fieldValue = item.getString();
                    System.out.println("req-fieldName: "+fieldName+",req-fieldValue: "+fieldValue); //vahid-log
                    formFields.put(fieldName,fieldValue);
                    System.out.println("map-fieldName: "+formFields.get(fieldName)+",map-fieldValue: "+formFields.get(fieldValue)); //vahid-log
            

formFields.put(fieldName,fieldValue);

向您的 Hashmap 添加一个值/键对,其中“fieldName”是键,“fieldValue”是值。 在下一行...

System.out.println("map-fieldName: "+formFields.get(fieldName)+",map-fieldValue: "+formFields.get(fieldValue)); //vahid-log

...您似乎想测试打印键/值对。 但是,HashMap 的“get”方法参数是/值对的键,因此

formFields.get(fieldName)

将返回键/对的值(即 fieldValue)和

formFields.get(fieldValue)

可能会返回null因为没有与值同名的键。 正确的 output 应该使用此检查行代替:

System.out.println("map-fieldName: "+fieldName+",map-fieldValue: "+formFields.get(fieldName)); //vahid-log

干杯!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM