Spring MVC 转换方法

2023-12-13

我有车辆服务,其中包括零件清单。添加新服务不是问题,查看服务也不是问题,但是当我尝试实现编辑时,它不会预先选择零件列表。所以,认为这是 Thymeleaf 问题,我发布了问题here.

我得到的答案是尝试实现 spring 转换服务。我就是这么做的(我想),现在我需要帮助来摆脱困境。问题是视图将服务中的部件实例与包含所有部件的 partsAttribute 形式的部件实例进行比较,并且从不使用转换器,因此它不起作用。我没有收到任何错误...只是在视图中,未选择零件。 下面您将找到转换器、WebMVCConfig、PartRepository、ServiceController 和 html w/ thymeleaf,供您参考。我究竟做错了什么???

转换器:

部分到字符串:

    public class PartToStringConverter implements  Converter<Part, String> {   
    /** The string that represents null. */
    private static final String NULL_REPRESENTATION = "null";

    @Resource
    private PartRepository partRepository;

    @Override
    public String convert(final Part part) {
        if (part.equals(NULL_REPRESENTATION)) {
                return null;
        }
        try {
          return part.getId().toString();
        }
        catch (NumberFormatException e) {
            throw new RuntimeException("could not convert `" + part + "` to an valid id");
        }
    }
}

字符串到部分:

public class StringToPartConverter implements  Converter<String, Part> {   
        /** The string that represents null. */
        private static final String NULL_REPRESENTATION = "null";

        @Resource
        private PartRepository partRepository;

        @Override
        public Part convert(final String idString) {
            if (idString.equals(NULL_REPRESENTATION)) {
                    return null;
            }
            try {
              Long id = Long.parseLong(idString);
              return this.partRepository.findByID(id);
            }
            catch (NumberFormatException e) {
                throw new RuntimeException("could not convert `" + id + "` to an valid id");
            }
        }
    }

WebMvcConfig的相关部分:

@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
...
    @Bean(name="conversionService")
    public ConversionService getConversionService(){
        ConversionServiceFactoryBean bean = new ConversionServiceFactoryBean();
        bean.setConverters(getConverters());
        bean.afterPropertiesSet();
        ConversionService object = bean.getObject();
        return object;
    }
    private Set<Converter> getConverters() {
        Set<Converter> converters = new HashSet<Converter>();

        converters.add(new PartToStringConverter());
        converters.add(new StringToPartConverter());
        System.out.println("converters added");
        return converters;
    }
}

零件存储库如下所示:

@Repository
@Transactional(readOnly = true)
public class PartRepository {

protected static Logger logger = Logger.getLogger("repo");

    @PersistenceContext
    private EntityManager entityManager;

    @Transactional
    public Part update(Part part){
        try {
            entityManager.merge(part);
            return part;
        } catch (PersistenceException e) {
            return null;
        }
    }

    @SuppressWarnings("unchecked")
    public List<Part> getAllParts(){
        try {
            return entityManager.createQuery("from Part").getResultList();
        } catch (Exception e) {
            return new ArrayList<Part>();
        }
    }

    public Part findByID(Long id){
        try {
            return entityManager.find(Part.class, id);
        } catch (Exception e) {
            return new Part();
        }
    }
}

编辑ServiceController的部分内容:

    @Controller
    @RequestMapping("/")
    public class ServisController {

        protected static Logger logger = Logger.getLogger("controller");

        @Autowired
        private ServisRepository servisRepository;
        @Autowired
        private ServisTypeRepository servisTypeRepo;
        @Autowired
        private PartRepository partRepo;
        @Autowired
        private VehicleRepository2 vehicleRepository;   

        /*-- **************************************************************** -*/
    /*--  Editing servis methods                                          -*/
    /*--                                                                  -*/
    /*-- **************************************************************** -*/

        @RequestMapping(value="/admin/servisi/editServis", method = RequestMethod.GET)
        public String getEditServis(@RequestParam(value="id", required=true) Long id, Model model){
            logger.debug("Received request to show edit page");

            List<ServisType> servisTypeList = servisTypeRepo.getAllST();
            List<Part> partList = partRepo.getAllParts();
            List<Part> selectedParts = new ArrayList<Part>();
            Servis s = servisRepository.getById(id);
            for (Part part : partList) {
                for (Part parts : s.getParts()) {
                    if(part.getId()==parts.getId()){
                        selectedParts.add(part);
                        System.out.println(part);
                    }
                }
            }
            s.setParts(selectedParts);

            logger.debug("radjeni dijelovi " + s.getParts().toString());
            logger.debug("radjeni dijelovi " + s.getParts().size());
            s.setVehicle(vehicleRepository.findByVin(s.getVehicle().getVin()));
            model.addAttribute("partsAtribute", partList);
            model.addAttribute("servisTypesAtribute", servisTypeList);
            model.addAttribute("servisAttribute", s);

            return "/admin/servis/editServis";
        }

        @RequestMapping(value="/admin/servisi/editServis", method = RequestMethod.POST)
        public String saveEditServis(@ModelAttribute("servisAttribute") @Valid Servis servis, BindingResult result){
            logger.debug("Received request to save edit page");
            if (result.hasErrors()) 
            {
                String ret = "/admin/servis/editServis";
                return ret;
            }

            servisRepository.update(servis);

            return "redirect:/admin/servisi/listServis?id="+servis.getVehicle().getVin();
        }
}

视图正确显示服务,只是它没有预选部件。

编辑服务:

<!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-spring3-3.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:th="http://www.thymeleaf.org">
<head th:include="fragments/common :: headFragment">
<title>Edit Vehicle Service</title>
</head>
<body>

<div th:include="fragments/common :: adminHeaderFragment"></div>

<div class="container">

<section id="object">
  <div class="page-header">
    <h1>Edit service</h1>
  </div>

<div class="row">

    <form action="#" th:object="${servisAttribute}"
        th:action="@{/admin/servisi/editServis}" method="post" class="form-horizontal well">

        <input type="hidden" th:field="*{vehicle.vin}" class="form-control input-xlarge" />
          <div class="form-group" th:class="${#fields.hasErrors('vehicle.vin')} ? 'form-group has-error' : 'form-group'">
          <label for="vehicle.licensePlate" class="col-lg-2 control-label">License Plate</label>
            <div class="col-lg-10">
                <input type="text" th:field="*{vehicle.licensePlate}" class="form-control input-xlarge" placeholder="License Plate" readonly="readonly"/>
              <p th:if="${#fields.hasErrors('vehicle.licensePlate')}" class="label label-danger" th:errors="*{vehicle.licensePlate}">Incorrect LP</p>
            </div>
          </div>    
          <div class="form-group" th:class="${#fields.hasErrors('serviceDate')} ? 'form-group has-error' : 'form-group'">
          <label for="serviceDate" class="col-lg-2 control-label">Servis Date: </label>
            <div class="col-lg-10">
              <input type="date" th:field="*{serviceDate}" class="form-control input-xlarge" placeholder="Servis Date" />
              <p th:if="${#fields.hasErrors('serviceDate')}" class="label label-danger" th:errors="*{serviceDate}">Incorrect Date</p>
            </div>
          </div>
          <div class="form-group" th:class="${#fields.hasErrors('serviceType.id')} ? 'form-group has-error' : 'form-group'">
          <label for="serviceType.id" class="col-lg-2 control-label">Vrsta Servisa</label>
            <div class="col-lg-10">
                <select th:field="*{serviceType.id}" class="form-control">
                <option th:each="servisType : ${servisTypesAtribute}" 
                        th:value="${servisType.id}" th:selected="${servisType.id==servisAttribute.serviceType.id}"
                        th:text="${servisType.name}">Vrsta Servisa</option>
                </select>
              <p th:if="${#fields.hasErrors('serviceType.id')}" class="label label-danger" th:errors="${serviceType.id}">Incorrect VIN</p>
            </div>
          </div>
          <div class="form-group" th:class="${#fields.hasErrors('parts')} ? 'form-group has-error' : 'form-group'">
          <label for="parts" class="col-lg-2 control-label">Parts</label>
            <div class="col-lg-10">
                <select class="form-control" th:field="*{parts}" multiple="multiple" >
                <option th:each="part : ${partsAtribute}" 
                        th:field="*{parts}"
                        th:value="${part.id}"
                        th:text="${part.Name}">Part name and serial No.</option>
                </select>
              <p th:if="${#fields.hasErrors('parts')}" class="label label-danger" th:errors="*{parts}">Incorrect part ID</p>
            </div>
          </div>
          <div class="form-group" th:class="${#fields.hasErrors('completed')} ? 'form-group has-error' : 'form-group'">
          <label for="completed" class="col-lg-2 control-label">Is service completed?</label>
            <div class="col-lg-10">
              <select th:field="*{completed}" class="form-control">
                <option value="true">Yes</option>
                <option value="false">No</option>
              </select>
              <p th:if="${#fields.hasErrors('completed')}" class="label label-danger" th:errors="*{completed}">Incorrect checkbox</p>
            </div>
          </div>
        <hr/>
          <div class="form-actions">
            <button type="submit" class="btn btn-primary">Edit Service</button>
            <a class="btn btn-default" th:href="@{/admin/servisi/listServis(id=${servisAttribute.vehicle.vin})}">Cancel</a>
          </div>
    </form>

</div>
</section>

<div class="row right">
  <a class="btn btn-primary btn-large" th:href="@{/admin/part/listPart}">Back to list</a>
</div> 

<div th:include="fragments/common :: footerFragment"></div>
</div>
<!-- /.container -->
<div th:include="fragments/common :: jsFragment"></div>

</body>
</html>

更新: 在 Avnish 的帮助下,我做了一些改变,这就是我得到的结果:

添加转换服务不起作用,所以在研究和阅读文档之后,返回并更改了我的 WebMvcConfig 文件,因此我添加了这个而不是 @Bean (我所要做的就是查看 WebMvcConfigurationSupport 上的文档:

@Override
    protected void addFormatters(FormatterRegistry registry){
        registry.addFormatter(new PartTwoWayConverter());
    }

然后我删除了转换器并只制作了一个可以发挥魔力的格式化程序。不要被名字搞糊涂了,它是格式化程序:

public class PartTwoWayConverter implements Formatter<Part>{

    /** The string that represents null. */
    private static final String NULL_REPRESENTATION = "null";

    @Resource
    private PartRepository partRepository;

    public PartTwoWayConverter(){
        super();
    }

    public Part parse(final String text, final Locale locale) throws ParseException{
        if (text.equals(NULL_REPRESENTATION)) {
            return null;
        }
        try {
            Long id = Long.parseLong(text);
        // Part part = partRepository.findByID(id); // this does not work with controller
        Part part = new Part(); // this works
        part.setId(id);         // 
        return part;
        }
        catch (NumberFormatException e) {
            throw new RuntimeException("could not convert `" + text + "` to an valid id");
        }       
    }

    public String print(final Part part, final Locale locale){
        if (part.equals(NULL_REPRESENTATION)) {
            return null;
        }
        try {
            return part.getId().toString();
        }
        catch (NumberFormatException e) {
            throw new RuntimeException("could not convert `" + part + "` to an valid id");
        }
    }

}

然后我编辑了 HTML。无法让百里香发挥作用,所以我这样做了:

<div class="form-group" th:class="${#fields.hasErrors('parts')} ? 'form-group has-error' : 'form-group'">
      <label for="parts" class="col-lg-2 control-label">Parts</label>
        <div class="col-lg-10">
            <select class="form-control" id="parts" name="parts" multiple="multiple" >
            <option th:each="part : ${partsAtribute}" 
                    th:selected="${servisAttribute.parts.contains(part)}"
                    th:value="${part.id}"
                    th:text="${part.name}">Part name and serial No.</option>
            </select>
          <p th:if="${#fields.hasErrors('parts')}" class="label label-danger" th:errors="*{parts}">Incorrect part ID</p>
        </div>
      </div>

最后,在经历了很多我无法弄清楚的麻烦和转换错误之后,更改了我的控制器更新方法:

@RequestMapping(value="/admin/servisi/editServis", method = RequestMethod.POST)
    public String saveEditServis(@ModelAttribute("servisAttribute") @Valid Servis servis, BindingResult result){
        logger.debug("Received request to save edit page");
        if (result.hasErrors()) 
        {
            logger.debug(result);
            String ret = "/admin/servis/editServis";
            return ret;
        }
        List<Part> list = new ArrayList<Part>();
        for (Part part : servis.getParts()) {
            list.add(partRepo.findByID(part.getId()));
        }
        Servis updating = servisRepository.getById(servis.getId());

        updating.setCompleted(servis.getCompleted());
        updating.setParts(list); // If just setting servis.getParts() it does not work
        updating.setServiceDate(servis.getServiceDate());
        updating.setServiceType(servis.getServiceType());

        servisRepository.update(updating);

        return "redirect:/admin/servisi/listServis?id="+servis.getVehicle().getVin();
    }

尽管这有效,但我仍然不满意,因为这段代码看起来更像是修补而不是正确的编码。仍然困惑为什么从partRepository 返回Part 不起作用。为什么百里香不起作用......如果有人能把我送到正确的方向,我将不胜感激!


Thymeleaf 使用 spring 框架比较值(用于在选项 html 中包含 selected="selected" 标签)SelectedValueComparator.isSelected这本质上首先取决于java平等。如果失败,它将回退到两个值的字符串表示形式。以下是其文档的摘录


用于测试候选值是否与数据绑定值匹配的实用程序类。热切地尝试通过多种途径来证明比较,以处理实例不平等、逻辑(基于字符串表示)相等和基于 PropertyEditor 的比较等问题。
为比较数组、集合和映射提供全面支持。
平等契约
对于单值对象,首先使用标准 Java 相等性来测试相等性。因此,用户代码应努力实现 Object.equals 以加快比较过程。如果 Object.equals 返回 false,则尝试进行详尽的比较,目的是证明相等性而不是反驳它。
接下来,尝试比较候选值和绑定值的字符串表示形式。在许多情况下这可能会导致 true,因为这两个值在显示给用户时都将表示为字符串。
接下来,如果候选值是字符串,则尝试将绑定值与将相应的 PropertyEditor 应用到候选值的结果进行比较。此比较可以执行两次,一次针对直接 String 实例,然后如果第一次比较结果为 false,则针对 String 表示形式。


对于您的具体情况,我会写下转换服务,以便将我的零件对象转换为字符串,如 VarietyFormatter 中所述http://www.thymeleaf.org/doc/html/Thymeleaf-Spring3.html#configuring-a-conversion-service。发布此内容时,我将使用:value="${part}" 并让 SelectedValue Comparator 发挥比较对象的魔力,并在 html 中添加 selected="selected" 部分。

另外,在我的设计中,我总是基于主键实现 equals 方法(通常我在所有其他实体继承的顶级抽象实体上执行此操作)。这进一步增强了我的系统中域对象的自然比较。你在设计中也在做类似的事情吗?

希望能帮助到你!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring MVC 转换方法 的相关文章

  • 使用可执行 JAR 时指定 Log4j2 配置文件

    使用可执行 JAR 文件时 我在指定 Log4j2 配置文件位置时遇到问题 如果我将所有 JAR 分开 效果很好 但是当我尝试将它们组合成一个可执行 JAR 文件时 由于某种原因log4j2 xml未从命令行获取文件 我尝试过这两种指定位置
  • cucumber.json 报告被重新运行场景报告覆盖

    我有一个具有相同技术堆栈 JAVA1 8 Cucumber JVM JUnit Maven 的 UI 测试项目和一个 API 测试项目 这两个项目都向我展示了这个问题 可能是因为两者都存在相同的依赖关系集 我使用了使用 maven sure
  • Eclipse JAVA工具jar不存在

    The archive C Java jdk1 6 0 26 32 lib tools jar which is referenced by the classpath does not exist 这是我运行Tomcat时遇到的错误 清理
  • 用Java截取网页的屏幕截图[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有一个免费的工具可以读取给定的网页并截取它的屏幕截图 我使用 VirtualFramebuffer 和 Firefox Binary
  • 是否可以使用 Spring 2.5 在不同的窗口选项卡中维护不同的会话(用户)?

    我们有一个要求 即在浏览器窗口的不同选项卡中支持不同的用户 我们如何在 Spring 2 5 中实现这一目标 该应用程序基于用户 用户将拥有自己的代理和文章 内部用户应该能够同时在不同选项卡中登录不同的用户帐户并操作其数据 任何帮助深表感谢
  • Appengine - 隐藏文件夹的部署

    为了验证 SSL 证书 我需要将包含一些文件的隐藏文件夹 well known 上传到我的应用程序 我正在使用 eclipse 部署 java 应用程序 但 appengine 上的应用程序未收到这些文件 我猜他们被过滤掉了 我尝试将隐藏文
  • 如何将 (A OR B) AND C 等表达式展开为 A AND C OR A AND B?

    我努力了Javaluator这帮助我评估了这样的表达式 A OR B AND C 但现在我只想扩展表达式 A OR B AND C to A AND C OR A AND B任何人都可以告诉我如何在 Java 任何 API 中执行此操作或任
  • ActiveMQ 桥连接器到 WebSphereMQ 而不使用 XML 配置

    我想在嵌入式代理中创建一个代理来代理 ActiveMQ 和 WebSphere MQ 之间的连接 我知道 activemq 中存在网络连接器来执行此操作 代理到代理 但我不知道如何配置它以连接到 WebSphere MQ 在网络上进行搜索时
  • 对 Java Servlet 进行单元测试

    我想知道对 servlet 进行单元测试的最佳方法是什么 只要内部方法不引用 servlet 上下文 测试内部方法就不是问题 但是测试 doGet doPost 方法以及引用上下文或使用会话参数的内部方法呢 有没有办法简单地使用经典工具 例
  • 使用 IntelliJ 调试 Java 进程 - 连接到套接字但不连接到目标 VM

    现在已解决 请参阅问题末尾 我正在尝试使用 IntelliJ Community Edition 的调试器来调试 Java 进程 套接字正在侦听 但是当我尝试连接时 调试过程显示以下内容 连接到目标虚拟机 地址 8003 传输 socket
  • javax.validation 的 @AssertTrue - 它不应该创建错误消息吗?

    我在 Spring MVC 命令 bean 中有以下代码 AssertTrue public boolean isConditionTrue return false private boolean conditionTrue 我的 JSP
  • 参数列表中的“...”是什么意思? doInBackground(字符串...参数)

    我不明白那个语法 尝试用谷歌搜索各种单词加上 是没有用的 它被称为varargs http java sun com j2se 1 5 0 docs guide language varargs html 这个事实应该产生更好的谷歌结果 h
  • 使用相对于配置文件的路径引用 Spring 属性文件

    我正在将属性从 Spring 配置文件内部移动到单独的属性文件中 这包含在配置文件中
  • IntelliJ IDEA 中的项目语言级别是多少?

    我正在使用 Java 7 SDK 和 IntelliJ IDEA IDE java version 1 7 0 11 Java TM SE Runtime Environment build 1 7 0 11 b21 Java HotSpo
  • JSF 定制转换器

    我有一个像这样的自定义转换器 Override public Object getAsObject FacesContext facesContext UIComponent component String str System out
  • Tomcat 与 Weblogic JNDI 查找

    我们使用的 Weblogic 服务器已配置为允许 JNDI 数据源名称 例如 appds 对于开发 本地主机 我们可能会运行 Tomcat 并且在 server xml 的 部分中声明时 Tomcat 会将 JNDI 数据源挂在 JNDI
  • 为什么永久代空间不断增长?

    我读过几篇文章 我理解以下内容 如果我错了 请纠正我和 或编辑问题 java堆是这样分段的 年轻代 创建的对象放在这里 这部分被频繁且廉价地垃圾收集 老一代 在年轻代的垃圾收集中幸存下来的对象会移到此处 该区域的垃圾收集频率较低 并且使用对
  • 在 Swift 中将 Int 转换为 UInt32

    我正在制作一个 Tcp 客户端 因此使用CFStreamCreatePairWithSocketToHost它期望第二个参数为 UInt32 这是我正在尝试做的事情的示例 func initNetwork IP String Port In
  • 所有语言中特殊字符的 Java 正则表达式

    在我的用户输入字段中 我想允许某些特殊字符 字母和数字的组合 我应该确保正则表达式模式在输入时允许此设置任何语言 基本上我构建的这个正则表达式也应该支持 unicode 表示 如何使用 Java 中的 Pattern 类来实现这一点 这里给
  • 获取给定字符串日期中该月的最后一天

    我的输入字符串日期如下 String date 1 13 2012 我得到的月份如下 SimpleDateFormat dateFormat new SimpleDateFormat MM dd yyyy Date convertedDat

随机推荐

  • 如何生成具有精确矩的样本数据

    如何生成准确的数据 在 R 中我们可以选择使用rnorm从具有某些特征的总体中进行抽样 例如 平均值 0 标准差 1 但是我们如何获取数据exactly均值 0 标准差 1 这是一个简单的例子 我也对应用获取精确数据的更通用方法感兴趣 例如
  • Laravel 5:使用 csrf 强制验证 [GET] 请求

    默认情况下 Laravel 5 验证并匹配所有 POST 请求的 令牌 如何告诉 L5 也验证 GET PUT 和删除 请求 gt 阻止任何没有有效令牌的请求 thanks 您可以创建自己的中间件来处理它并替换默认的 Laravel ver
  • AngularJs错误无法读取未定义的属性“then”

    这是模块 function app Module Description angular module app 我有这个服务 function use strict angular module app factory homeservic
  • 在 C# 中使用 Windows 应用程序执行 http 方法

    有许多网站在表单提交时调用脚本并使用 HTTP POST 或 GET 传递参数 使用 Web 调试器我发现正在传递的参数 现在我希望通过我的 C Windows 应用程序做同样的事情 我怎样才能实现这样的功能 我目前正在 C 中使用 Htt
  • ggplot2 生成的切片图

    我想知道是否可以将图形分别切片为使用 ggsave 生成 的 png 文件 如果我不想使用默认的图例或标题并将其设置为 FALSE 则会留下大量空白 那么有没有一种 R 方法可以将文件剪切到图形本身上方和下方几个像素呢 提前谢谢 你可以改变
  • 使用 str.contains 忽略 NaN

    我想找到包含字符串的行 如下所示 DF DF col str contains foo 但是 这会失败 因为某些元素是 NaN ValueError 无法使用包含 NA NaN 值的向量进行索引 所以我诉诸于混淆 DF DF col not
  • 安装 OS X Mavericks 后出现 RMagick 错误

    我在 OS X Mountain Lion 中安装了 RMagick 并完美运行 我刚刚安装了 OS X Mavericks 当我尝试运行时rails s 我收到此错误 rvm gems ruby 2 0 0 p0 myapp gems a
  • BProlog 8.1 中的制表性能不均匀

    我用表格功能做了一些实验b prolog8 1 版本 我对观察到的性能感到非常惊讶 这是我使用的代码 它计算的数量Collatz steps N减少一些正整数所需的I向下1 table posInt CollatzSteps 2 remov
  • 尝试通过原始 IP 数据包发送数据时的 EMSGSIZE

    我的代码将原始 IP 数据包发送到12 12 12 12并失败 因为EMSGSIZE 我认为它根据以太网 MTU 限制我的数据包 但它应该发送 我尝试将数据包发送至127 0 0 1这工作得很好 但是当我将数据包发送到非本地 IP 时 就会
  • 具有多个分隔符的 sql-maven-plugin

    我正在使用 sql maven plugin 在多个数据库上执行一些 MySQL 脚本 我想在同一个 SQL 脚本中部署表 数据 触发器 事件和存储过程 我的行分隔符有问题 因为对于 INSERT 或 CREATE 我使用 但对于我的触发器
  • ServicePointManager.DefaultConnectionLimit 返回 Int32.MaxValue

    出于诊断目的 我正在记录 ServicePointManager DefaultConnectionLimit 然而奇怪的是 它似乎返回 Int32 MaxValue 即 2147483647 这似乎与MSDN 文档就此主题而言 Servi
  • 在信号处理的上下文中到底哪些变量需要 sig_atomic_t ?

    这是一个简单的玩具程序 使用volatile sig atomic t include
  • 将 PHP 与 asp.net / asp.net-mvc 集成的最佳方式

    巧合的是 这个问题在上周出现了两次 客户有一个想要保留的现有 PHP 网站 他们还拥有或即将拥有一些 ASP net 网页 希望将其集成到现有站点中 使其显示为单个站点 我们想到了以下几种可能性 使用 IFrame 将所有 html 菜单复
  • dbModel 读取资源在 Magento 版本 1.3.2.4 中未实现 Zend_Db_Adapter_Abstract

    我为我的 Magento 项目创建了一个自定义模块 该模块适用于 Magento 1 6 X 但是当我在 Magento 版本 1 3 2 4 中安装此扩展时 Magento 抛出以下错误 dbModel read resource doe
  • 下载一张带有 HTML 图像内容的笔记页面

    当我们使用 one note API 图像源获取 HTML 形式的页面内容时 图像源似乎无法正常工作 HTML 内容中图像源的末尾有一个 value 当一个笔记页面有图像时 我们该如何处理 Ex img 宽度 649 高度 587 src
  • Spark:使用scala从s3读取csv文件

    我正在编写一个 Spark 作业 尝试使用 scala 读取文本文件 以下内容在我的本地计算机上运行良好 val myFile myLocalPath myFile csv for line lt Source fromFile myFil
  • 执行任何 IO/Stream 时 C++ JNI 崩溃/挂起

    当我尝试编译 C 代码以在 JAVA 端使用时 我似乎遇到了一个大问题 当我尝试执行任何与 IO Stream Manipulation 相关的操作时 JVM 似乎崩溃了 有时 就像我每 10 次运行应用程序时 JNI 可以 100 处理所
  • R dplyr:非标准评估难度。想要在过滤器和变异中使用动态变量名称

    我创建了一个可重现的示例来说明我在 R dplyr 中进行非标准评估时遇到的问题 我想在下面的场景中使用动态变量名称 Given a data frame of patient data I need to find records con
  • Outlook VBA 打开 Excel

    我正在尝试从 Outlook 打开现有的 Excel 工作表 我可以看到工作簿打开 然后又立即关闭 我将 Excel Application 设置为可见 有任何想法吗 这是代码 Function openNewForm toDoSubjec
  • Spring MVC 转换方法

    我有车辆服务 其中包括零件清单 添加新服务不是问题 查看服务也不是问题 但是当我尝试实现编辑时 它不会预先选择零件列表 所以 认为这是 Thymeleaf 问题 我发布了问题here 我得到的答案是尝试实现 spring 转换服务 我就是这