天道酬勤,学无止境

如何显示本地 h2 数据库(Web 控制台)的内容?(How to show content of local h2 database(web console)?)

问题

最近我加入了一个新团队,这里的人使用 h2 进行存根服务。

我想知道是否可以使用 Web 界面显示该数据库的内容。 在工作中,它可以通过访问localhost:5080

我有一个使用 h2 数据库的项目,但是当我点击localhost:5080时我看不到 h2 Web 控制台

我也试过localhost:8082 - 它也不起作用。

我的项目配置(成功运行):

     <bean id="wrappedDataSource" class="net.bull.javamelody.SpringDataSourceFactoryBean">
        <property name="targetName" value="dataSource" />
     </bean>

     <bean id="wrappedDataSource" class="net.bull.javamelody.SpringDataSourceFactoryBean">
            <property name="targetName" value="dataSource" />
        </bean>

        <bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource">
            <property name="driverClassName" value="org.h2.Driver" />
            <property name="url" value="jdbc:h2:~/test;MODE=PostgreSQL" />
            <property name="username" value="sa" />
            <property name="password" value="" />
        </bean>

        <bean id="sessionFactory"
              class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
            <property name="dataSource" ref="wrappedDataSource"/>
            <property name="configLocation">
                <value>classpath:hibernate-test.cfg.xml</value>
            </property>
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.show_sql">false</prop>
                    <prop key="hibernate.connection.charSet">UTF-8</prop>
                    <prop key="hibernate.format_sql">true</prop>
                    <prop key="hbm2ddl.auto">create-drop</prop>
                </props>
            </property>
        </bean>

        <context:property-placeholder location="classpath:jdbc.properties"/>

我不知道如何访问 h2 web 控制台。 请帮忙。

聚苯乙烯

我只在.m2文件夹中看到提到 h2

PS2

我注意到http://localhost:8082/可用的 web 控制台,如果将配置中的 url 替换为:

<property name="url" value="jdbc:h2:tcp://localhost/~/test;MODE=PostgreSQL" />

但是如果我已经启动了 h2,它就可以工作(在.m2文件夹中找到h2 jar 文件并双击)

如果启动应用程序时 h2 未启动 - 我会看到以下错误:

java.lang.IllegalStateException: Failed to load ApplicationContext
    at org.springframework.test.context.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:94)
    ...
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dbInitializer': Invocation of init method failed; nested exception is org.hibernate.exception.GenericJDBCException: Could not open connection
    at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:136)
    ...
Caused by: org.hibernate.exception.GenericJDBCException: Could not open connection
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54)
    ...
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Соединение разорвано: "java.net.ConnectException: Connection refused: connect: localhost"
Connection is broken: "java.net.ConnectException: Connection refused: connect: localhost" [90067-182])
    at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
    ...
Caused by: org.h2.jdbc.JdbcSQLException: Соединение разорвано: "java.net.ConnectException: Connection refused: connect: localhost"
Connection is broken: "java.net.ConnectException: Connection refused: connect: localhost" [90067-182]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
    ...
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    ...

如果在我启动我的应用程序时它没有启动,我想实现 h2 启动。

PS3

我曾尝试编写以下代码:

Server server = null;
try {
    server = Server.createTcpServer("-tcpAllowOthers").start();
    Class.forName("org.h2.Driver");
    Connection conn = DriverManager.getConnection("jdbc:h2:tcp://localhost/~/test;MODE=PostgreSQL", "sa", "");
 } catch (Exception e) {
    LOG.error("Error while initialize", e);
 }

我执行它,然后尝试在浏览器中键入localhost:9092

这时下载文件。 里面的文件如下内容:

Version mismatch, driver version is “0” but server version is “15”

我的 h2 版本 1.4.182

PS4

此代码有效:

public class H2Starter extends ContextLoaderListener {
    private static final Logger LOG = LoggerFactory.getLogger(H2Starter.class);

    @Override
    public void contextInitialized(ServletContextEvent event) {

        startH2();
        super.contextInitialized(event);
    }

    private static void startH2() {

        try {
            Server.createTcpServer("-tcpAllowOthers").start();
            Class.forName("org.h2.Driver");
            DriverManager.getConnection("jdbc:h2:tcp://localhost/~/test;MODE=PostgreSQL;AUTO_SERVER=TRUE", "sa", "");

            Server.createWebServer().start();
        } catch (Exception e) {
            LOG.error("cannot start H2 [{}]", e);
        }
    }

    public static void main(String[] args) {
        startH2();
    }
}

但我只需要在混凝土弹簧轮廓处于活动状态时调用它(现在它始终有效)

回答1

让我们把问题分成两部分。

根据您指定与 H2 的连接的方式,您将获得不同的操作模式。

模式有:嵌入式、内存中、服务器。

jdbc:h2:~/test为您提供了一个嵌入模式的 H2 实例。 嵌入模式有一个限制,即只能通过相同的类加载器和相同的 JVM 访问(证明)

jdbc:h2:mem:test您提供内存中的 H2 实例。 这也无法从外部世界访问。

jdbc:h2:tcp://localhost/test将启动 H2 服务器,它可以从 JVM 服务器模式之外访问,但有一个限制 - 服务器需要在建立连接之前启动。

最后一个限制是导致您的Connection refused: connect: localhost"异常。

总结一切:

  • 启动应用程序之前启动 H2 服务器
  • 使用jdbc:h2:tcp://localhost/test作为连接字符串
  • ....
  • 快乐编码:)

更新

刚刚注意到您要在启动应用程序的过程中启动服务器。

您可以通过多种方式执行此操作,具体取决于您如何启动应用程序:

  • 如果您使用的是 maven / gradle,则可以更轻松地添加一些配置文件 / 任务,以便在应用程序实际启动之前执行它。
  • 如果你必须在java中设置一切,我建议你看看这个问题

更新 2

如果仅出于开发/调试目的需要连接到本地数据库,我将使用 maven 配置文件设置所有内容。 这个问题的答案将解决这个问题。

如果您需要在生产中访问 H2 数据库(我几乎无法想象任何用例),最好在春季这样做。 主要是因为应用程序容器/环境设置在生产中可能会有所不同(与开发环境相比)。

要解决有关是否在 Spring 上下文之外启动服务器的问题 - 这一切都取决于需求。 你应该注意的一件事是服务器应该在数据源启动之前启动(否则 spring 上下文不会加载)

更新 3

不幸的是,我无法为您提供可行的解决方案,但根据 JavaDocs,TCP 服务器和 Web 服务器之间存在差异。 仔细查看 H2 Server 类的 JavaDoc。

我猜你应该使用Server.createWebServer()方法来创建服务器(TCP 服务器和 Web 服务器之间的区别在于

你可以使用另一个很棒的类org.h2.tools.Console (JavaDoc here) 只需运行 Console 的 main 方法,我想应该可以解决所有问题。

回答2

您应该能够使用内存中或基于文件的变体,然后在您的应用程序中单独启动 H2 TCP 服务器,例如使用 Spring bean(注意半伪代码和示例端口):

@Component
class Bootstrap {
    @PostConstruct
    public void startH2TcpServer() {
         Server.createTcpServer("-tcpPort", "9123", "-tcpDaemon").start();
    }
}

见 http://www.h2database.com/html/tutorial.html#using_server

回答3

如何更改配置中的 jdbc url 以包含

AUTO_SERVER=TRUE 

自动启动h2。

请参阅自动混合模式

多个进程可以访问同一个数据库,而无需手动启动服务器。 为此,请将 ;AUTO_SERVER=TRUE 附加到数据库 URL。 无论数据库是否已打开,您都可以使用相同的数据库 URL。 此功能不适用于内存数据库。

对该数据库的所有连接使用相同的 URL。 在内部,当使用这种模式时,到数据库的第一个连接是在嵌入式模式下进行的,另外还有一个服务器在内部启动(作为一个守护线程)。 如果数据库已经在另一个进程中打开,则自动使用服务器模式。

标签

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 如何在 localhost:8082 查看我的 h2 数据库中的所有表?(How to see all tables in my h2 database at localhost:8082?)
    问题 我使用 JDBC 并从 sql 脚本创建了名为 usaDB 的 h2 数据库。 然后我用 jdbc 填充了所有表。 问题是,在我通过 localhost:8082 连接到 usaDB 后,我在左侧的树上看不到我的表。 只有 INFORMATION_SCHEMA 数据库和rootUser我指定创建 usaDB。 如何查看我的 h2 数据库中表的内容? 我试过查询SELECT * FROM INFORMATION_SCHEMA.TABLES 。 但它返回了许多表名,除了我创建的那些。 我的快照: 回答1 我有同样的问题,答案似乎很愚蠢:当你输入你的数据库名称时,你不应该添加“ .h2.db ”后缀,例如,如果你有 db 文件“ D:\somebase.h2.db " 你的连接字符串应该像 " jdbc:h2:file:/D:/somebase "。 以其他方式 jdbc 创建名为“ somebase.h2.db.h2.db ”的新空数据库文件,您会看到您所看到的:只有系统表。 回答2 您可以使用 SHOW 命令: 使用此命令,您可以列出模式、表或表的列。 例如: SHOW TABLES 回答3 这个问题驱使我绕过这个问题,除了这个页面之外,我还阅读了很多(很多!)其他的,直到我解决了它。 我的用例是查看使用:: Spring Boot :: (v1.3.1.RELEASE)在
  • 如何在asp.net MVC 3剃刀视图中使用Reportviewer控件?(How can I use a reportviewer control in an asp.net mvc 3 razor view?)
    问题 我试图在mvc 3框架的剃刀视图中使用reportviewer控件。 在线文档讨论拖放。 关于如何将其插入视图的任何建议。 回答1 以下解决方案仅适用于单页报告。 请参阅注释以获取更多详细信息。 ReportViewer是服务器控件,因此不能在剃刀视图中使用。 但是,您可以在应用程序中添加一个ASPX视图页,查看包含ReportViewer的用户控件或传统Web表单。 您将需要确保已将相关处理程序添加到web.config中。 如果您使用ASPX视图页或视图用户控件,则需要将AsyncRendering设置为false才能使报告正确显示。 更新: 添加了更多示例代码。 请注意,Global.asax中不需要任何有意义的更改。 Web.Config 我的最终结果如下: <?xml version="1.0"?> <!-- For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId=152368 --> <configuration> <appSettings> <add key="webpages:Version" value="1.0.0.0"/> <add key=
  • ASP.NET Core MVC / Razor页面教程-第1部分 列表展示(根据官网教程)
    目录 1、创建书籍实体 2、将书籍实体添加到DbContext 3、配置Book实体 4、添加新的迁移并更新数据库 5、添加初始(样本)数据 6、创建应用程序服务 7、在浏览器的开发人员控制台中进行测试 8、创建书籍页面 9、将书籍页面添加到主菜单 10、本地化菜单项 11、图书清单 1、创建书籍实体 启动模板中的域层分为两个项目: ABPBookStore.Domain包含您的实体,域服务和其他核心域对象。ABPBookStore.Domain.Shared包含那些能够与客户共享的constants,enums或其他领域相关的对象。 在解决方案的域层(Acme.BookStore.Domain 项目)中定义实体。应用程序的主要实体是Book。在Acme.BookStore.Domain项目中创建一个名为 Book的类,如下所示: using System; using Volo.Abp.Domain.Entities.Auditing; namespace ABPBookStore { public class Book : AuditedAggregateRoot<Guid> { public string Name { get; set; } public BookType Type { get; set; } public DateTime PublishDate {
  • 如何使WebBrowser控件显示现代内容?(How can I get the WebBrowser control to show modern contents?)
    问题 我创建了一个使用WebBrowser控件的Winforms应用程序; 我动态分配了它的Uri。 它工作了一段时间,但现在我收到了这个味精: 您似乎使用了不受支持的浏览器。 较旧的浏览器可能会危及您的安全,运行缓慢且不能与较新的Google Maps功能配合使用。 要访问Google Maps,您需要更新为新版浏览器。 最后两个词是一个链接,在该链接之后,我看到: 您正在使用... IE 11 因此,好的,WebBrowser组件使用IE 11。 我该如何改变呢? 我的机器已设置为使用Chrome作为其浏览器; 控件应该使用您当前使用的浏览器是什么? 我不知道这是否可能/可行。 更新 好的,我愿意尝试Reza的建议。 但是,当我导航到regedit中的指定位置并在右窗格中右键单击以添加新条目时,它具有三个选项: 键,字符串值,二进制值 我认为字符串值是“ .exe”字符串,二进制值是“ dword” val,但是“ Key”值应该是什么呢? 回答1 Web浏览器控件 WebBrowser控件使用与操作系统上安装的Internet Explorer版本相同的控件,但默认情况下不使用最新的文档模式,并以兼容模式显示内容。 症状-作为一种症状,该网站可以在Internet Explorer或其他浏览器中正常运行,但是WebBrowser控件不能很好地显示该网站,对于某些网站
  • Spring Boot默认的H2 jdbc连接(和H2控制台)(Spring Boot default H2 jdbc connection (and H2 console))
    问题 我只是想查看当我在application.properties未指定任何内容并以mvn spring:run开头时,spring-boot创建的嵌入式H2数据库的H2数据库内容。 我可以看到休眠的JPA正在创建表,但是如果我尝试通过数据库下面的URL访问h2控制台,则该表没有表。 http://localhost:8080/console/ 我看到这样的建议:查看由Spring启动的嵌入式H2数据库的内容 但是我不知道在春季启动时将建议的XML放在哪里,即使我这样做了,我也不希望在配置外部数据库时h2console可用,因此我更有可能需要处理此问题。使用某种条件代码(或者在最理想的情况下(仅当激活了Maven配置文件时我仅包含H2)才允许spring自动处理它)。 是否有人有示例代码显示如何使H2控制台在启动时工作(以及找出spring使用的jdbc连接字符串的方法)? 回答1 这就是我让H2控制台在H2的春季启动中工作的方式。 我不确定这是否正确,但是由于没有其他人提供解决方案,因此我将建议这是最好的方法。 就我而言,我为数据库选择了一个特定的名称,以便在启动H2控制台时可以输入一些内容(在本例中为“ AZ”)。 我认为所有这些都是必需的,尽管似乎忽略了spring.jpa.database-platform并没有任何伤害。 在application.properties中
  • dedeCMS总结
    下载dedecms模板 官网下载:http://www.dedecms.com/ 后台 dede后台管理界面代码在/dede/templets/目录下 pc端数据遍历 后台配置前端模板目录 系统->系统基本参数->默认模板风格 将前端代码放置templetes/default目录中,将文件后缀html改为.htm。系统默认文件命名为: index.htm 首页 index_article.htm 封面页 list_article.htm 列表页 article_article.htm 文章页/内容详情页 修改栏目默认列表页/文章详情页 选择栏目->更改->高级选项->修改->确定 标签的使用 系统标签 1.主要模板head区域标签 首页head区域: {dede:global.cfg_webname/} 标题调用 {dede:global.cfg_keywords/} 关键词 {dede:global.cfg_description/} 描述 列表页head区域: {dede:field.title/}-{dede:global.cfg_webname/} 标题 {dede:field name='keywords'/} 关键词 {dede:field name='description' function='html2text(@me)'/} 描述 内容页head区域 {dede
  • Java Web前后端分离项目—后端servlet实例
    关与作者更多博客请访问云里云外开源社区 文章目录 一、闲谈二、json字符串的接受和发送json的发送json的接收 三、内网穿透或服务上云服务器四、跨域背景(为什么)如何跨域 五、对接出错后的纠错机制Tomcat的接口日志控制台输出提示信息前后端互动查错 六、THE EHD 联合篇:前端靳紫澜的关于对接–前端 一、闲谈 从刚开始接到项目心中就一直惦记着该如何对接,究竟什么是对接。功夫不负有心人,前段时间与前端小姐姐对接成功了,在后端servlet编写中上网找了很多对接案例,对接方法。但大部分都很难,不易入手,也不易理解!所以在这里总结一下我的完整方式,前端的详细介绍请点击这位小姐姐的博客。 前后端分离大大解放了程序猿(媛)的生产力,原来后台程序猿又写逻辑又写页面的时代一去不复返了(大佬例外) 但也同时产生了很多问题,例如沟通、接口文档、跨域等一系列问题。但这次疫情期间我们也不得以云对接了,前后端分离的开发模式也受到了很大的影响。在本篇博客中只谈后端的部分操作。 先说后台要解决的几个问题 json字符串的接受和发送跨域问题的解决对接出错后的纠错机制 二、json字符串的接受和发送 这里采用阿里巴巴的fastjson包,网上推荐原因是速度较快,但我觉得就冲国产也该支持一下。 这里不具体说明具体的json字符串和java对象的转化,主要说明json字符串在post方式下前后端的交互。
  • 如何自动将HTML转换为PDF?(How can I automate HTML-to-PDF conversions?)
    问题 我已经使用htmldoc一段时间了,但是遇到了一些相当严重的限制。 我需要最终解决方案才能在Linux机器上工作。 我将从Perl应用程序调用此库/实用程序/应用程序,因此任何Perl接口都将是一个奖励。 回答1 注意:此答案来自2008年,现在可能不正确; 请检查其他答案 PrinceXML是我见过的最好的XML(它解析常规HTML以及XML / XHTML)。 最好吗? 好吧,它通过了acid2测试,我认为这真是令人印象深刻 但是,它很贵 回答2 抱歉,发掘了这篇旧文章,但是它在我搜索最佳HTML / PDF转换工具时排在第一位。 在Linux上,wkhtmltopdf非常好(考虑到CSS等)和GPL。 回答3 WeasyPrint可以生成带有可选文本和超链接的精美PDF。 weasyprint input.html output.pdf 如果改为使用wkhtmltopdf ,请尝试以下选项: wkhtmltopdf --margin-bottom 20mm --margin-top 20mm --minimum-font-size 16 ... 回答4 更新2019-05 幸运的是,整个过程已由TheCodingMachine打包到一个docker映像中:https://github.com/thecodingmachine/gotenberg
  • 我应该在backbone.js中使用中央事件总线吗?(Should I use a central event bus with backbone.js?)
    问题 我目前正在开发我的第一个backbone.js应用。 事件的概念对我来说非常熟悉,但是我是否应该使用中央事件调度程序存在疑问。 通常我看到这两种方法: 直接将事件发布者和事件接收者连接在一起。 (我从这种方法开始。) 使用事件总线并将发布者和接收者连接到该总线。 就例如应用程序的长期可维护性和事件的可追溯性而言,使用事件总线是否有利? 回答1 是使用中央事件总线还是直接将事件连接在一起,应根据具体情况进行评估。 根据情况,有时您会偏爱其中一个。 由于发布者和接收者不是紧密耦合的,我将尽可能使用中央事件总线。 在我看来,这使您的代码更易于维护和灵活。 当您有以下情况时,我发现中央事件总线非常有用: 单个事件发布实例和多个事件接收器。 许多事件发布实例和单个事件接收器 当事件接收器实例或发布器实例是动态的并因此在应用程序的生命周期内被创建和销毁时,中央事件总线在上述情况下的好处变得更加明显。 例如,考虑以下单页应用程序: 单页应用程序必须拉伸以适应浏览器窗口的宽度。 单页应用程序主要是一组选项卡式视图,但是选项卡的数量是动态的,因为它们是由用户创建和销毁的选项卡的内容都是不同的,除了它们的主要内容区域必须在考虑其他同级元素的宽度后拉伸以适应可用宽度由于选项卡的内容不断变化,需要在许多不同的点调整大小。 在上述情况下,无论具体场景如何,中央总线模型都非常有效。 一个代码示例是:
  • asp.net c#MVC:如何在没有ViewState的情况下生活?(asp.net c# MVC: How do I live without ViewState?)
    问题 我只是在考虑将WebForms转换为MVC: 在.net MVC中,哪些概念使ViewState成为不需要的东西? 是否将表单回发到iteself等上(即回发)? 页面/用户控件如何保持其状态? 人们正在采取什么技巧来维持某种状态而不求助于会话状态? 当然,不能存在一个完全无状态的环境吗? 回答1 但是当然可以。 实际上,网络是无状态的。 实际上,任何与之相反的想法都是像差。 Web控件在MVC中已消失。 服务器端没有事件触发。 这由两种不同的机制代替-URL和POST表单数据。 正确使用这些将取代您对ViewState的需求。 在常规的ASP.NET Web应用程序中,您需要在网页上放置一个执行功能X的LinkBut​​ton。ASP.NET会将大量ViewState脚本,JavaScript和其他内容粘贴到网页中,以便在用户单击按钮时并“回发”到网站(通过提交不存在的表单),ASP.NET重构发生了什么并确定必须执行特定的按钮事件处理程序。 在MVC中,您可以构造链接以访问特定的路由。 该路线描述了用户希望执行的操作-/ Users / Delenquent / Index(显示所有违规用户的列表)。 MVC中的路由系统确定哪个控制器将处理此路由以及该控制器上的哪个方法将执行。 可以通过URL查询字符串值将任何其他信息传输到控制器方法(第5页,第5页为?Page = 5)
  • 如何在Durandal.js,mvc3中使用部分视图(How to use partial views with Durandal.js, mvc3)
    问题 我注意到App / views文件夹中的所有视图均为html类型,而不是cshtml类型。 如何使用我习惯的PartialViews和mvc3东西(例如剃刀)? 回答1 Durandal旨在用于创建完全驻留在一页内的应用程序。 这样做的好处是用户体验就像桌面应用程序一样。 而且,这允许将应用程序轻松移植到phonegap上,在其中可以将其作为本机移动应用程序使用,甚至可以使用appjs移植到桌面应用程序。 通过将整个应用程序保存为html,js和css文件,您可以将整个应用程序压缩/最小化/丑化为一个文件,并让服务器为您提供整个应用程序。 然后,该应用程序仅调用Web服务来获取其数据。 可能是MVC控制器,Web API或一些返回数据的Web服务。 您可以使用此数据绑定到浏览器模板并生成要显示的视图。 您还可以拥有一个混合应用程序,其中您的服务器可以服务多个durandal SPA,然后您将拥有一个由单个站点提供服务的应用程序集合。 我看到许多来自MVC背景的人都很好地问为什么我不能为HTML使用CSHTML文件。 简短的答案是可以,但是这样做会带来很多好处。 当服务器让您呈现html文件时,您将无法再压缩/缩小/丑化您的整个应用程序,因为您依赖服务器为您生成html。 如果您更喜欢cshtml,那么传统上,这是针对AJAX丰富的应用程序的,您的用户调用一些uri
  • 您如何将现有的Web应用程序转换为多语言的应用程序?(How would you transform a pre-existing web app into a multilingual one?)
    问题 我将在一个项目中工作,该项目需要调整一个相当大的Web应用程序以处理几种语言。 这东西是用手工制作的PHP代码运行的,但是很干净。 我想知道什么是最好的方法? 自己制作东西,尝试适合实际的体系结构。 使用将为我管理i18n的框架(例如Symfony)重写其中的很大一部分吗? 对于选项1,我应该在哪里存储i18n数据? * .po,xliff,纯DB? 我想到了一个替代方案:仅将Symfony用于翻译,但是将控制器设置为按原样加载网站。 很快,但是很脏。 另一方面,它使我们可以进行下一个修改,然后慢慢过渡到完整的Symfony:此网站确实是一个不错的选择。 但是也许有一些独立的翻译引擎会比整个Web框架做得更好。 有点像用火箭筒杀死苍蝇... 回答1 有许多解决方法。 它们都不是“最佳方法”,并且它们都短期或长期都存在问题。 首先要说的是,多语言站点并不容易,翻译人员和可爱的人却很难与他们合作,并且大多数程序员都认为该问题只是技术性的。 关于您正在翻译还是本地化,还有另一个维度,超出了此答案的范围。 这包括查看目标受众的文化习俗,然后针对该文化定制语言,样式,布局,颜色,字体等。 最后,不要将MT(机器翻译)用于任何严重的问题或需要准确的事情,并且在获取翻译人员时,请确保将他们从外语翻译成母语,这意味着他们了解目标语言的所有细微差别。 正确的。 解决方案。 如果您不想重写站点
  • 从本地文本文件读取到C#中? [关闭](Reading from a local text file into C#? [closed])
    问题 关闭。 此问题不符合堆栈溢出准则。 它当前不接受答案。 想要改善这个问题吗? 更新问题,使其成为Stack Overflow的主题。 7年前关闭。 改善这个问题 我已经搜索过并且仅找到控制台的此信息,但是我想知道是否可以将本地计算机上的文件中的文本读取为代码,对其进行格式化并在屏幕上显示? 我们有一个带有一些法律术语的文本文件,可以定期更新这些文本,而不是让用户浏览代码,我们只是想更新文本文件并使更改在线应用。 谢谢! 编辑:感谢大家的评论,这是对要求的编辑。 该程序位于C#ASP.NET网站中。 我已经读过许多关于如何在控制台中完成此操作的文章,但是我不确定如何使它对我有用。 再次感谢大家的贡献。 回答1 您具有完整的程序(ASP.net)。 您必须在ASP.net应用程序内的App_Data文件夹内有一个文件,在此应用程序中,文件名“ Details.txt ”应在App_Data文件夹内可用。 您的网页中有“隐藏字段”和一个段落。 加载表单后,此时将从文本文件中读取数据,然后填充到“隐藏字段”控件中。 并在$(document).ready() Jquery函数中,将数据填充到Hidden-field的段落中。 您的.aspx页面: <%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site
  • 即使我设置了 CustomError="On",自定义错误页面也不会显示(Custom Error Page does not show even though I set CustomError=“On”)
    问题 我正在将 Visual Studio 2012 与 MVC 4 框架一起使用,并且希望在未处理异常时查看共享文件夹的友好错误页面。 (我知道,作为开发人员,我需要查看错误详细信息,但我只是想测试此设置) 到目前为止,我知道在 web.config 的 system.web 部分添加以下代码应该可以解决问题 <customErrors mode="On" /> 不幸的是,我得到的不是我友好的错误页面: “/”应用程序中的服务器错误。 运行时错误描述:服务器上发生应用程序错误。 此应用程序的当前自定义错误设置阻止查看应用程序错误的详细信息。 详细信息:要在本地服务器计算机上查看此特定错误消息的详细信息,请在位于当前 Web 应用程序根目录的“web.config”配置文件中创建一个标记。 然后,此标记应将其“模式”属性设置为“RemoteOnly”。 要使详细信息可以在远程机器上查看,请将“模式”设置为“关闭”。 <!-- Web.Config Configuration File --> <configuration> <system.web> <customErrors mode="RemoteOnly"/> </system.web> </configuration> 注意:您看到的当前错误页面可以通过修改应用程序配置标签的“defaultRedirect
  • 如何在代码点火器中将变量从一个控制器传递到另一个控制器(how to pass a variable from one controller to the other in Code igniter)
    问题 我刚刚开始学习 Code Igniter 。 我想知道如何将变量从一个控制器(first_cont.php)传递给另一个控制器(second_cont.php)? 任何帮助,将不胜感激 。 提前致谢 :) 回答1 这将取决于具体情况。 如果您想将数据保留一段时间,那么会话数据将是您要走的路。 但是,如果您只需要使用它一次,则闪存数据可能更合适。 第一步是初始化会话库: $this->load->library('session'); 然后将信息存储在闪存数据中: $this->session->set_flashdata('item', $myVar); 最后,在第二个控制器中,获取数据: $myVar = $this->session->flashdata('item'); 显然,这意味着您必须从第二个控制器再次初始化会话库,或者创建您自己的基本控制器来加载会话库并使您的两个控制器都继承自该控制器。 回答2 我认为在 codeigniter 中你不能在两个不同的控制器之间传递变量。 一种明显的机制是使用会话数据。 回答3 好的,这里是关于 MVC 的一些最容易引用的内容: 控制器用于输入,模型用于逻辑,视图用于显示。 现在,严格来说,您不应该将数据从控制器发送到另一个控制器。 我想不出任何需要这样做的情况。 但是,如果绝对需要
  • Laravel 4 如何在视图中显示 Flash 消息?(Laravel 4 how to display flash message in view?)
    问题 我正在尝试显示我的 Flash 消息。 这是在我的路由文件中 Route::post('users/groups/save', function(){ return Redirect::to('users/groups')->withInput()->with('success', 'Group Created Successfully.'); }); 这在我看来 {{ $success = Session::get('success') }} @if($success) <div class="alert-box success"> <h2>{{ $success }}</h2> </div> @endif 但没有任何效果。 当我尝试这个时,我收到一个错误变量 $success 未定义。 但它实际上也显示了 flash 消息。 {{ Session::get('success') }} @if($success) <div class="alert-box success"> <h2>{{ $success }}</h2> </div> @endif 回答1 这对我有用 @if(Session::has('success')) <div class="alert-box success"> <h2>{{ Session::get('success') }}</h2> <
  • 2019前端面试题汇总(主要为Vue)
    1. 谈谈你对MVVM开发模式的理解MVVM分为Model、View、ViewModel三者。Model 代表数据模型,数据和业务逻辑都在Model层中定义;View 代表UI视图,负责数据的展示;ViewModel 负责监听 Model 中数据的改变并且控制视图的更新,处理用户交互操作;Model 和 View 并无直接关联,而是通过 ViewModel 来进行联系的,Model 和 ViewModel 之间有着双向数据绑定的联系。因此当 Model 中的数据改变时会触发 View层的刷新,View 中由于用户交互操作而改变的数据也会在 Model 中同步。这种模式实现了 Model 和 View 的数据自动同步,因此开发者只需要专注对数据的维护操作即可,而不需要自己操作 dom。2. Vue 有哪些指令?v-html、v-show、v-if、v-for等等3. v-if 和 v-show 有什么区别?v-show 仅仅控制元素的显示方式,将 display 属性在 block 和 none 来回切换;而v-if会控制这个 DOM 节点的存在与否。当我们需要经常切换某个元素的显示/隐藏时,使用v-show会更加节省性能上的开销;当只需要一次显示或隐藏时,使用v-if更加合理。4. 简述Vue的响应式原理当一个Vue实例创建时,vue会遍历data选项的属性,用 Object
  • AngularJS:如何将 JSON 数据加载到作用域变量上(AngularJS: How to load JSON data onto a scope variable)
    问题 我正在创建一个个人网站,我可以在其中不断更新内容而无需操作HTML 。 我试图通过简单地加载和更新JSON文件来实现这一点。 但是现在,我无法将JSON数据加载到scope变量中。 HTML <!doctype html> <html> <head> <script src="angular.min.js" type="text/javascript"></script> <script src="maincontroller.js" type="text/javascript"></script> </head> <body> <div ng-app="mainApp" ng-controller="mainController"> <div id="content"> <div ng-repeat="content in contents"> <h2>{{content.heading}}</h2> <p>{{content.description}}</h2> </div> </div> </div> </body> </html> 主控制器.js var myapp = angular.module('mainApp', []); myapp.controller('mainController',function($scope,$http){ $scope
  • Chrome开发者工具调试技巧
    1.主要功能有什么? 元素面板——通过操作DOM和CSS调整和检查页面; 控制台面板——记录诊断信息、作为 shell 在页面上与JS交互; 源码面板——设置断点来调试 JS、连接本地文件实时编辑; 网络面板——查看请求和下载的资源文件来优化网页加载性能; 性能面板——记录和查看网站生命周期内发生的各种事件; 内存面板——生成内存使用快照,分析页面占用内容情况; 应用面板——检查加载IndexedDB 、 Web SQL 数据库、本地和会话存储、cookie 、应用程序缓存、图片样式资源等等; 安全面板——调试混合内容问题,证书问题等等; LightHouse——用于审核并提高页面质量的自动化工具; 2.通用技巧 1、copy()方法——通过copy拿到console的资源 2、Store as global——保存为全局变量 3、Save as——将日志信息保存到本地 4、HTML Copy——复制HTML元素 5、快捷键——常用的快捷键 ctrl + shift + D 切换展示布局 ctrl + [或] 或者 ctrl + 1~9 切换面板(需要Enable) 上/下/左/右箭头调整数值或颜色 ctrl + F 哪都有的ctrl加f ctrl + shift + P 命令面板 6、命令面板——有意思的几个命令 Capture full size screenshot
  • 如何使自定义错误页面在ASP.NET MVC 4中工作(How to make custom error pages work in ASP.NET MVC 4)
    问题 我想要为500、404和403显示一个自定义错误页面。这是我所做的: 在web.config中启用了自定义错误,如下所示: <customErrors mode="On" defaultRedirect="~/Views/Shared/Error.cshtml"> <error statusCode="403" redirect="~/Views/Shared/UnauthorizedAccess.cshtml" /> <error statusCode="404" redirect="~/Views/Shared/FileNotFound.cshtml" /> </customErrors> 在FilterConfig类HandleErrorAttribute注册为全局操作过滤器,如下所示: public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new CustomHandleErrorAttribute()); filters.Add(new AuthorizeAttribute()); } 为上述每个消息创建了一个自定义错误页面。 开箱即用的默认500。 在每个自定义错误页面视图中声明该页面的模型为System.Web.Mvc