小编NRa*_*Raf的帖子

Java Web应用程序i18n

我已经获得了使用2.3 servlet规范将i18n引入J2EE Web应用程序的(相当艰巨的)任务.该应用程序非常庞大,已经积极开发了8年多.

因此,我希望第一次就把事情做好,这样我就可以限制我需要在JSP,JavaScript文件,servlet和其他任何地方乱写的时间,用消息包中的值替换硬编码的字符串.

这里没有使用框架.我怎样才能支持i18n.请注意,我希望每个视图都有一个JSP,它可以从(a)属性文件加载文本,而不是为每个支持的语言环境加载不同的JSP.

我想我的主要问题是我是否可以在'后端'中的某处设置区域设置(即在登录时从用户配置文件中读取区域设置并在会话中存储值),然后期望JSP页面能够正确加载指定的字符串.正确的属性文件(即,当语言环境为法语时,来自messages_fr.properties),而不是添加逻辑以在每个JSP中查找正确的语言环境.

我有什么想法可以解决这个问题吗?

java jsp internationalization

8
推荐指数
1
解决办法
7272
查看次数

将画布的内容发送到Java服务器并将其另存为图像

好的,基本上我开发了一个简单的图像上传系统.用户选择本地图像(使用HTML5文件/ FileReader API),并且能够在确认结果之前裁剪它.

最终结果在画布中查看,以便将其发送到我正在使用toDataURL的服务器.后端服务器是NodeJS服务器,然后需要对Java服务器进行REST调用,Java服务器将根据数据创建映像文件并将其保存到磁盘.

toDataURL的结果采用以下形式:data:image/png; base64,ENCODED DATA.

我需要在Java服务器上将字符串转换为正确的二进制表示形式吗?

javascript java canvas

8
推荐指数
2
解决办法
9387
查看次数

Spring:设置语言环境

我按照以下指南中的说明设置了Spring:http://www.springbyexample.org/examples/basic-webapp-internationalization-spring-config.html

例如,如果我要将?locale = fr附加到URL的末尾,则语言环境将更改为法语.

但是,在我的情况下,我想在用户登录时设置区域设置,因为此信息与其配置文件相关联.我试着使用localeResolver.setLocale(请求,响应新的区域("FR"))(其中的LocaleResolver是SessionLocaleResolver的一个实例)指定区域然而,这并没有任何影响.

知道我做错了什么吗?我是否以正确的方式处理这个问题?

spring localization internationalization

6
推荐指数
2
解决办法
3万
查看次数

在Redux中复制状态

假设您有一个使用Redux的书籍应用程序,其中包含一些功能:

  • 买书
  • 有一份书愿望清单
  • 维护您拥有的书籍清单
  • 向朋友发送推荐信
  • 复习书籍

现在让我们说所有这些不同的模块,以及所有这些模块的共同特征是能够搜索书籍(即搜索要购买的书籍,添加到心​​愿单的书籍,要审阅的书籍等).

这些搜索结果将存储在状态树的多个切片中.

状态树的示例可能如下所示:

{
  bookStore: {
    booksSearchResults: [],
    ...,
  },
  wishlist: {
    booksSearchResults: [],
    ...,
  },
  reviews: {
    newReview: {
      booksSearchResults: [],
      ...,
    },
    ...
  },
  ...
}
Run Code Online (Sandbox Code Playgroud)

是否有关于管理此类事物的最佳实践?是否只是booksSearch通过共享组件获得一个状态并进行管理?

如果您可能需要在同一屏幕上的多个位置搜索图书(例如,除了应用程序主要部分中的搜索组件之外,您可能在导航栏中有自动完成搜索功能)?

另一种方法是重用搜索逻辑并以某种方式让它更新状态的不同部分(如果是这样,是否存在实现此目的的东西)?

architecture redux

6
推荐指数
1
解决办法
619
查看次数

角材料-全局颜色变量

他们查看Angular Material文档时,建议使用-theme每个组件一个文件来管理将与主题相关的样式应用于特定类。

在我看来,这种方法的一些缺点是:

  • 很冗长
  • 将样式分为两个不同的位置
  • 您所有的前端开发人员都需要了解Angular Material颜色如何工作
  • 使得更改值变得更加困难(例如,我们可能一直在使用mat-color($primary, 200)边框颜色,现在想将其更改为mat-color($primary, 300)。这将在整个代码库中重复进行。

给定一致的设计语言,将仅使用一部分颜色(例如,主调色板中的4种颜色,重点调色板中的3种颜色,一些不同的前景色/背景色等)。

鉴于以上所述,_colors.scss使用主题定义确切的颜色,而不是希望开发人员每次都从主题中提取正确的值,不是更有意义吗?

例如,也许像这样:

  $clr-primary-default: mat-color($primary);
  $clr-primary-contrast: mat-color($primary, default-contrast);
  $clr-primary-light: mat-color($primary, lighter);
  $clr-primary-dark: mat-color($primary, darker);

  $clr-accent-default: mat-color($accent);
  $clr-accent-light: mat-color($accent, lighter);
  $clr-accent-dark: mat-color($accent, darker);

  $clr-default-text: mat-color($foreground);
  $clr-secondary-text: mat-color($foreground, secondary-text);

  //etc
Run Code Online (Sandbox Code Playgroud)

然后-theme,我无需为需要特定颜色的每个组件创建单独的文件,而是可以简单地导入colors.scss文件并直接在*.component.scss文件中使用变量。

只是想验证上面的内容是否正确,并且我没有错过任何明显的会引起麻烦的东西?

另一个棘手的部分是如何colors有效地在单独的文件中定义它们,因为该文件需要访问主题数据。

css sass angular-material2 angular

6
推荐指数
3
解决办法
7613
查看次数

使用RxJS进行批处理?

我猜这应该有点容易实现,但我遇到了麻烦(从概念上讲,我猜)找出如何解决它.

我所拥有的是一个返回JSON对象数组的API.我需要逐步浏览这些对象,并为每个对象进行另一个AJAX调用.问题是处理每个AJAX调用的系统一次只能处理两个活动调用(因为它是一个CPU密集型任务,可以挂钩到桌面应用程序中).

我想知道如何使用RxJS(使用版本5或4)来实现这一目标?

编辑:此外,是否可以同时运行一系列步骤.即

Downloading File: 1 Processing File: 1 Converting File: 1 Uploading File: 1 Downloading File: 2 Processing File: 2 Converting File: 2 Uploading File: 2 Downloading File: 3 Processing File: 3 Converting File: 3 Uploading File: 3

我尝试过这样的事情:

Rx.Observable.fromPromise(start())
    .concatMap(arr => Rx.Observable.from(arr))
    .concatMap(x => downloadFile(x))
    .concatMap((entry) => processFile(entry))
    .concatMap((entry) => convertFile(entry))
    .concatMap((entry) => UploadFile(entry))
    .subscribe(
        data => console.log('data', new Date().getTime(), data),
        error => logger.warn('err', error),
        complete => logger.info('complete')
    );
Run Code Online (Sandbox Code Playgroud)

然而,这似乎不起作用.例如,downloadFile不等待processFile,convertFile和uploadFile全部完成,而是下一个将在前一个完成后再次运行.

javascript rxjs rxjs5

5
推荐指数
1
解决办法
1733
查看次数

在RxJS 6中重置ReplaySubject

我有一个可过滤的“活动日志”,当前使用来实现ReplaySubject(因为一些组件在使用它,并且它们可能在不同的时间进行订阅)。

当用户更改过滤器设置时,会发出一个新请求,但是结果将附加到ReplaySubject而不是替换它。

我想知道是否有ReplaySubject某种方法可以更新,使其仅使用诸如的内容通过新项目发送switchMap

否则,我可能需要使用BehaviorSubject返回所有活动条目的数组的,或者重新创建ReplaySubject并通知用户(可能通过使用另一个可观察的对象)来取消订阅并重新订阅新的可观察对象。

javascript rxjs

5
推荐指数
2
解决办法
2812
查看次数

Stripe 中按比例分配计量计划

我们希望在 SaaS 中按用户收费。我们使用 Stripe 作为我们的支付处理器。前 5 名成员包含在基本计划中。任何超出的用户都需支付额外的免费费用(假设为 10 美元)。

\n\n

如果在计费周期中途添加用户,我们只想向他们收取 5 美元。如果添加了 3/4,则应收取 7.50 美元。如果用户添加了该月的 1/3,然后被删除,则应向他们收取 3.33 美元的费用。

\n\n

这类似于Slack 的方法

\n\n
\n

将新成员添加到付费工作区如果您使用付费计划并在计费周期中途添加新成员,我们将仅收取所用时间的费用。我们\xe2\x80\x99将为您跟踪此情况,并在每个月末\n向您收取费用。

\n\n

这里\xe2\x80\x99s 是一个例子:

\n\n

让\xe2\x80\x99s 假设您的工作区采用的是按月付费的标准计划,\n 每个会员每月的费用为 8 美元。您在结算周期的 10 天后添加了一名新成员,该月还剩 20 天。

\n\n

按比例分配的订阅费用的计算方法是,\n 每个会员的费用 ($8) 除以该月的天数 (30),然后乘以\n 剩余天数 (20),即可得出\n 按比例分配的订阅费用该计费周期剩余时间的订阅费用:5.33 美元

\n\n

如果您每年付款,则效果相同。我们将计算今年剩余时间的按比例分配的费用,并在月底向您收取任何新增费用。

\n
\n\n

我想知道 Stripe 是否可以实现这一点。

\n

stripe-payments

5
推荐指数
1
解决办法
1618
查看次数

在Spring XML配置文件中使用Properties String

有没有办法将Spring配置文件中的bean属性设置为从Properties文件中读取的字符串的属性?

例如

<bean id="...." class="....">
    <property name="loginURL">GET_THIS_VALUE_FROM_'ENV.PROPERTIES'_FILE</property>
</bean>
Run Code Online (Sandbox Code Playgroud)

java spring properties

4
推荐指数
1
解决办法
6516
查看次数

C# - 使用lambda表达式或LINQ填充列表

已经有一段时间了,因为我已经使用了lambda表达式或LINQ,并且我想知道如何使用这两种方法执行以下操作(我知道我可以使用foreach循环,这只是出于好奇).

我有一个字符串路径数组(如果这是一个数组或列表,它会有所不同吗?)我想从中返回一个只有文件名的新列表.

即使用foreach循环,它将是:

string[] paths = getPaths();
List<string> listToReturn = new List<string>();
foreach (string path in paths)
{
    listToReturn.add(Path.GetFileName(path));
}

return listToReturn;
Run Code Online (Sandbox Code Playgroud)

我如何用lambda和LINQ做同样的事情?

编辑:在我的情况下,我使用返回的列表作为ListBox(WPF)的ItemsSource所以我假设它将需要是一个列表而不是IEnumerable?

c# linq lambda

3
推荐指数
3
解决办法
3万
查看次数