HYBRIS – 组件和插槽如何在JSP文件中工作?

最近我和Hybris一起工作,我无法理解这些组件是如何工作的。 我知道如何创建和定义一个,如何将它们添加到我想要的页面等等。但我不明白如何在jsp文件中使用标记 。 在产品详细信息页面的插槽AddToCartSlot ,我添加了更多组件。 我试着像标准一样调用我的组件并评论他的行。 默认情况下,它被称为组件,如下所示: 所以我也尝试调用我的组件,但不起作用: 所以我的线路评论并取消注释他的线条,所有组件都显示在页面上。 但对我来说这没有任何意义,因为在标签cms:pageSlot的position属性中cms:pageSlot应该收到一个槽的id而不是一个组件的id来显示所有组件槽。 但是,将ID为AddToCart而不是AddToCartSlot是在页面上显示所有组件的唯一方法。 现在你会想到“如果组件在Web上显示会出现什么问题?”,问题是这些组件没有通过与它们对应的java控制器(尽管在com.myStore.storefront.controllers.ControllerConstants.java创建并声明了com.myStore.storefront.controllers.ControllerConstants.java文件)。 另外,我想了解为什么它不能正常工作。 我按照Wki Hybris的步骤进行操作,我发现所有内容都被声明为另一个正常工作的自定义组件。 我找不到差异,我无法理解为什么不通过我的控制器或为什么标签不能像插槽的id那样工作,但是当我使用组件的标识符时它“有效”。 真的,任何想法都会有所帮助。 非常感谢你。

如何在Mac 10及更高版本上分发Java应用程序7.0及更高版本?

我需要在Mac上运行我的Java应用程序。 我可以找到本教程使用Xcode捆绑应用程序。 本教程要求读者可以访问Jar Bundle应用程序,但我无法在/ Developer / Applications / Java Tools /文件夹中找到它。 在那之后我遇到了这个答案 ,似乎提供了一个很好的方法来做到这一点。 但是,我想知道是否有更好的方法来完成工作而不是那里提到的工作。

如何打开并运行已编译的Java文件?

如何在Java程序中打开.class或.jar文件? (记住.jar文件可能有多个带有main(String [] args)方法的类) (来自IDE风格程序运行的个别问题)

Joda时间 – 两个日期之间的月份差异

我需要在两个日期之间获得差异,我正在使用Joda Time,问题是: DateTime date1 = new DateTime().withDate(2015, 2, 1); DateTime date2 = new DateTime().withDate(2015, 1, 1); Months m = Months.monthsBetween(date1, date2); int monthDif = m.getMonths();//this return 0 它返回0,因为在两个日期的中间没有月份,我需要在几个月内返回差异而不是几个月之间,并且当日期相同时添加1会有问题。

使用System属性更改spring bean别名

我试图弄清楚是否可以通过系统属性更改弹簧别名配置。 这是配置: 我希望能够使用JVM属性,例如使用-Duse=beanThree为别名选择另一个bean。 不幸的是,使用直接解决方案会抛出NoSuchBeanDefinitionExceptionexception:( 有什么建议么?

JDK 8u161中Apache FTPS客户端中的SSL会话重用

使用Apache Commons-Net的FTPSClient连接到现代FTP / S服务器不起作用。 原因是它们需要重用SSL会话,即需要重新使用来自控制连接的SSL会话进行数据连接。 这通常可以在服务器中停用,但也就是说 不安全 并不总是一个选项(因为服务器可能不在您的控制之下) 正确的解决方案是让客户端实际重用会话。 Commons-Net存在一个漏洞 ,但看起来不会很快得到解决。 此外,还有一个由Cyber​​duck(一个FTP客户端应用程序)的作者创建的“reflection黑客”,它在他们的bugtracker中进行了描述,并且在博客文章中更深入地描述。 StackOverflow上还有一篇相关文章描述了这个解决方案。 他们使用reflection来访问JDK的SSLSessionContext的内部缓存并注入一个新条目。 这个hack工作正常,直到JDK 8u161和9.0.4(?),其中引入了对更改日志中描述的SSL的一些更改。 显然,一些实现细节已经改变,导致黑客不再工作。 据我所知,现在有以下选项: 继续使用JDK 8u152,直到有人找到解决方案/ apache-commons-net得到修补/ JDK更改被回滚(不是真正的选项,因为这会切断生产系统的安全更新) 使用不同的FTPS客户端(我能找到的唯一替代方案是专有且非常昂贵) 尝试对SSLSessionContext实现的更改进行反向工程以查找新的解决方法。 这看起来不仅仅是一项非常重要的任务 – 解决方案可能会再次成为黑客,因此可能随时再次破裂。 不要再使用FTP / S. 谁能建议如何在这里继续? 相关链接: http://mail.openjdk.java.net/pipermail/security-dev/2016-December/015254.html https://bugs.openjdk.java.net/browse/JDK-8170813 https://issues.apache.org/jira/browse/NET-426

初始化FingerpringManager.Crypto对象,得到没有AndroidKeyStore提供程序支持的Crypto原语?

我正在使用Android FingerPrintManager API并使用KeyPairGenerator创建密钥对,我想使用公钥加密密码,然后通过委托fingerPrint对用户进行身份validation进行解密,但是一旦我运行我的项目就会崩溃并给出 引起:java.lang.IllegalArgumentException:没有AndroidKeyStore提供者支持的Crypto原语 我从这里使用了代码: Android指纹API加密和解密这篇文章说他能够进行ecryption和解密,并且遵循相同的代码和步骤。 这是我的代码 public KeyStore getKeyStore() { try { return KeyStore.getInstance(“AndroidKeyStore”); } catch (KeyStoreException exception) { throw new RuntimeException(“Failed to get an instance of KeyStore”, exception); } } public KeyPairGenerator getKeyPairGenerator() { try { return KeyPairGenerator.getInstance(“RSA”, “AndroidKeyStore”); } catch (NoSuchAlgorithmException | NoSuchProviderException exception) { throw new RuntimeException(“Failed to get an instance […]

获取String中每个单词的第一个字符

我正在努力让一个程序工作,它执行以下操作: 假设我们有一个名为name的String ,设置为”Stack Overflow Exchange” 。 我想输出给用户”SOE” ,每个单词的第一个字符。 我尝试使用split()方法,但我没有做到。 我的代码: public class q4 { public static void main(String args[]) { String x = “michele jones”; String[] myName = x.split(“”); for(int i = 0; i < myName.length; i++) { if(myName[i] == "") { String s = myName[i]; System.out.println(s); } } } } 我试图检测是否有空格,然后我可以简单地采取下一个索引。 谁能告诉我我做错了什么?

Java可以用来编写Win32系统服务吗?

标题类型总结了它。 我正在考虑使用Jabaco看到它生成.EXE(以及.jar文件),而且我比VB更熟悉VB语法。

使Java应用程序对用户不可见

我正在试图找到一种方法使Java应用程序对用户不可见。 基本上只是试图删除这个 < – 图像 如何才能做到这一点? public class TransparentWindow extends JFrame { public TransparentWindow() { initComponents(); } @SuppressWarnings(“unchecked”) private void initComponents() { setExtendedState(Frame.MAXIMIZED_BOTH); setResizable(false); setUndecorated(true); setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); setAlwaysOnTop(true); System.setProperty(“sun.java2d.noddraw”, “true”); WindowUtils.setWindowTransparent(this, true); WindowUtils.setWindowAlpha(this, 0.6f); } public static void main(String[] args) { new TransparentWindow().setVisible(true); } }