我正在开发一个MVC框架,我在制作一个灵活的代码/结构来声明帮助程序类时遇到了问题
class Controller {
public $helper = [];
public function load_helper($helper) {
require_once(DIR_HELPER . $helper . '.php');
$lc_helper = StrToLower($helper);
$helper_arr[$lc_helper] = new $helper;
$this->helper[$lc_helper] = $helper_arr[$lc_helper];
}
}
Run Code Online (Sandbox Code Playgroud)
//我正在调用我的控制器中的函数
Class Home Extends Controller {
$this->load_helper('Form');
$this->helper['form']-><class function>;
}
Run Code Online (Sandbox Code Playgroud)
我想调用这样的函数:
$this->form-><class function>;
Run Code Online (Sandbox Code Playgroud)
我不能将提取用于公共功能,但我已经看到可以做到这一点的框架.
我希望有人有一个想法,有人可以理解我的问题,提前谢谢.
当我将战争部署到Tomcat 7时,我收到以下消息:
nested exception is java.lang.NoClassDefFoundError: javax/el/ELManager
Run Code Online (Sandbox Code Playgroud)
我添加<tomcat.version>7.0.61</tomcat.version>到我的pom.xml中,现在可以在我的开发环境中重现错误.
在bean创建之后发生错误,其他更改是让我运行战争所必需的.
我试图更改我的pom.xml,以便它使用可能与tomcat 7一起使用的旧版本,但未能解决问题.我不知道哪个包产生了问题.
请参阅pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.xxx</groupId>
<artifactId>monitormonitor</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>monitormonitor</name>
<description>Web Service Monitoring project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<start-class>com.xxx.monitormonitor.MonitormonitorApplication</start-class>
<!-- deploying war-file on tomcat 7 -->
<tomcat.version>7.0.61</tomcat.version><!-- nested exception is java.lang.NoClassDefFoundError: javax/el/ELManager -->
<servlet-api.version>3.0.1</servlet-api.version>
</properties>
<packaging>war</packaging>
<dependencies>
<!-- added other version of log4j for invalid byte tag error -->
<dependency> …Run Code Online (Sandbox Code Playgroud) 我正在设置语言环境以进行翻译。当语言环境在会话期间保持不变时,它会起作用。但是,如果我在会话中间更改语言环境并重新加载页面,它会保留在旧语言环境中。
您知道从浏览器获取最新语言设置的方法吗?
我的代码:
@SpringUI
@WebServlet(value = "/*", asyncSupported = true)
@VaadinServletConfiguration(productionMode = false, ui = MainUI.class)
public class MainUI extends UI
{
@Override
protected void init(VaadinRequest request)
{
log.debug("MainUI init! locale: {}", getLocale());//or getSession().getLocale()
messageByLocaleService.setLocale(getLocale());
...
Run Code Online (Sandbox Code Playgroud)
我自己找到了一个解决方案,但我不能 100% 确定这是正确的解决方案。