<s:property/> 中文

本文介绍了一个项目中遇到的问题:在输出JSON格式的数据时,中文字符无法正常显示,而是以乱码形式出现。文章提供了解决方案,即使用&lt;s:property value=C escape=false/&gt;的方法来正确显示中文。
项目中需要把数据打印成json格式,但其中的一个属性是“中文”


var xxxList=[];
<s:iterator value="xxxList" status="status">
_xxxList.push(
{
id:'<s:property value="a"/>',
key:'<s:property value="b"/>',
name:'<s:property value="c"/>'
})
</s:iterator>

这样输出不显示中文,都是&#809381...............



<s:property value="C" escape="false"/>
后发现只要这样就可以解决
<!-- MainWindow.xaml --> <Window x:Class="RTAOS.ConfigTool.Views.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:prism="http://prismlibrary.com/" xmlns:i="http://schemas.microsoft.com/xaml/behaviors" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" prism:ViewModelLocator.AutoWireViewModel="True" Title="{Binding Title}" Height="900" Width="1600" WindowStartupLocation="CenterScreen" MinHeight="600" MinWidth="800"> <Window.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <!-- Material Design 主题 --> <materialDesign:BundledTheme BaseTheme="Dark" PrimaryColor="DeepPurple" SecondaryColor="Lime" /> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" /> <!-- 自定义样式 --> <ResourceDictionary Source="/Styles/CommonStyles.xaml" /> <ResourceDictionary Source="/Styles/ButtonStyles.xaml" /> <ResourceDictionary Source="/Styles/TextBoxStyles.xaml" /> <ResourceDictionary Source="/Styles/DataGridStyles.xaml" /> </ResourceDictionary.MergedDictionaries> <!-- 转换器 --> <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" /> <InverseBooleanConverter x:Key="InverseBooleanConverter" /> <NullToVisibilityConverter x:Key="NullToVisibilityConverter" /> <StringFormatConverter x:Key="StringFormatConverter" /> <!-- 数据模板 --> <DataTemplate x:Key="ProjectTreeItemTemplate"> <StackPanel Orientation="Horizontal"> <materialDesign:PackIcon Kind="{Binding Icon}" Width="16" Height="16" Margin="0 0 4 0" Foreground="{DynamicResource MaterialDesignBody}" /> <TextBlock Text="{Binding Name}" VerticalAlignment="Center" /> <TextBlock Text="{Binding Count, StringFormat=' ({0})'}" Foreground="{DynamicResource MaterialDesignBodyLight}" VerticalAlignment="Center" Margin="4 0 0 0" /> </StackPanel> </DataTemplate> <!-- 编辑器标签样式 --> <Style x:Key="EditorTabItemStyle" TargetType="TabItem" BasedOn="{StaticResource MaterialDesignTabItem}"> <Setter Property="Padding" Value="12 8" /> <Setter Property="FontSize" Value="14" /> </Style> </ResourceDictionary> </Window.Resources> <!-- 窗口行为 --> <i:Interaction.Behaviors> <prism:InteractionRequestTrigger SourceObject="{Binding ConfirmationRequest, Mode=OneWay}"> <prism:PopupWindowAction IsModal="True" CenterOverAssociatedObject="True" /> </prism:InteractionRequestTrigger> <prism:InteractionRequestTrigger SourceObject="{Binding NotificationRequest, Mode=OneWay}"> <prism:PopupWindowAction IsModal="True" CenterOverAssociatedObject="True" /> </prism:InteractionRequestTrigger> </i:Interaction.Behaviors> <DockPanel> <!-- 菜单栏 --> <Menu DockPanel.Dock="Top" Background="{DynamicResource MaterialDesignPaper}"> <MenuItem Header="文件(_F)" Style="{StaticResource MaterialDesignMenuItem}"> <MenuItem Header="新建项目(_N)" Command="{Binding NewProjectCommand}" InputGestureText="Ctrl+N"> <MenuItem.Icon> <materialDesign:PackIcon Kind="FilePlus" /> </MenuItem.Icon> </MenuItem> <MenuItem Header="打开项目(_O)" Command="{Binding OpenProjectCommand}" InputGestureText="Ctrl+O"> <MenuItem.Icon> <materialDesign:PackIcon Kind="FolderOpen" /> </MenuItem.Icon> </MenuItem> <Separator Style="{StaticResource MaterialDesignMenuItem}" /> <MenuItem Header="保存(_S)" Command="{Binding SaveProjectCommand}" InputGestureText="Ctrl+S"> <MenuItem.Icon> <materialDesign:PackIcon Kind="ContentSave" /> </MenuItem.Icon> </MenuItem> <MenuItem Header="另存为(_A)" Command="{Binding SaveProjectAsCommand}" InputGestureText="Ctrl+Shift+S"> <MenuItem.Icon> <materialDesign:PackIcon Kind="ContentSaveEdit" /> </MenuItem.Icon> </MenuItem> <Separator Style="{StaticResource MaterialDesignMenuItem}" /> <MenuItem Header="最近项目"> <MenuItem.Icon> <materialDesign:PackIcon Kind="History" /> </MenuItem.Icon> <MenuItem.ItemsSource> <MultiBinding Converter="{StaticResource RecentProjectsConverter}"> <Binding Path="RecentProjects" /> <Binding Path="OpenRecentProjectCommand" /> </MultiBinding> </MenuItem.ItemsSource> </MenuItem> <Separator Style="{StaticResource MaterialDesignMenuItem}" /> <MenuItem Header="退出(_X)" Command="{Binding ExitCommand}" InputGestureText="Alt+F4"> <MenuItem.Icon> <materialDesign:PackIcon Kind="ExitToApp" /> </MenuItem.Icon> </MenuItem> </MenuItem> <MenuItem Header="编辑(_E)" Style="{StaticResource MaterialDesignMenuItem}"> <MenuItem Header="撤销(_U)" Command="{Binding UndoCommand}" InputGestureText="Ctrl+Z"> <MenuItem.Icon> <materialDesign:PackIcon Kind="Undo" /> </MenuItem.Icon> </MenuItem> <MenuItem Header="重做(_R)" Command="{Binding RedoCommand}" InputGestureText="Ctrl+Y"> <MenuItem.Icon> <materialDesign:PackIcon Kind="Redo" /> </MenuItem.Icon> </MenuItem> <Separator Style="{StaticResource MaterialDesignMenuItem}" /> <MenuItem Header="剪切(_T)" Command="Cut" InputGestureText="Ctrl+X"> <MenuItem.Icon> <materialDesign:PackIcon Kind="ContentCut" /> </MenuItem.Icon> </MenuItem> <MenuItem Header="复制(_C)" Command="Copy" InputGestureText="Ctrl+C"> <MenuItem.Icon> <materialDesign:PackIcon Kind="ContentCopy" /> </MenuItem.Icon> </MenuItem> <MenuItem Header="粘贴(_P)" Command="Paste" InputGestureText="Ctrl+V"> <MenuItem.Icon> <materialDesign:PackIcon Kind="ContentPaste" /> </MenuItem.Icon> </MenuItem> <Separator Style="{StaticResource MaterialDesignMenuItem}" /> <MenuItem Header="查找(_F)" Command="{Binding FindCommand}" InputGestureText="Ctrl+F"> <MenuItem.Icon> <materialDesign:PackIcon Kind="Magnify" /> </MenuItem.Icon> </MenuItem> <MenuItem Header="替换(_R)" Command="{Binding ReplaceCommand}" InputGestureText="Ctrl+H"> <MenuItem.Icon> <materialDesign:PackIcon Kind="FindReplace" /> </MenuItem.Icon> </MenuItem> </MenuItem> <MenuItem Header="视图(_V)" Style="{StaticResource MaterialDesignMenuItem}"> <MenuItem Header="任务编辑器" Command="{Binding ShowTaskEditorCommand}"> <MenuItem.Icon> <materialDesign:PackIcon Kind="FormatListBulleted" /> </MenuItem.Icon> </MenuItem> <MenuItem Header="中断编辑器" Command="{Binding ShowISREditorCommand}"> <MenuItem.Icon> <materialDesign:PackIcon Kind="AlertCircle" /> </MenuItem.Icon> </MenuItem> <MenuItem Header="调度表编辑器" Command="{Binding ShowScheduleEditorCommand}"> <MenuItem.Icon> <materialDesign:PackIcon Kind="CalendarClock" /> </MenuItem.Icon> </MenuItem> <Separator Style="{StaticResource MaterialDesignMenuItem}" /> <MenuItem Header="分析视图" Command="{Binding ShowAnalysisViewCommand}"> <MenuItem.Icon> <materialDesign:PackIcon Kind="ChartLine" /> </MenuItem.Icon> </MenuItem> <MenuItem Header="代码预览" Command="{Binding ShowCodePreviewCommand}"> <MenuItem.Icon> <materialDesign:PackIcon Kind="CodeBraces" /> </MenuItem.Icon> </MenuItem> <Separator Style="{StaticResource MaterialDesignMenuItem}" /> <MenuItem Header="重置布局" Command="{Binding ResetLayoutCommand}"> <MenuItem.Icon> <materialDesign:PackIcon Kind="ViewDashboard" /> </MenuItem.Icon> </MenuItem> </MenuItem> <MenuItem Header="工具(_T)" Style="{StaticResource MaterialDesignMenuItem}"> <MenuItem Header="验证配置(_V)" Command="{Binding ValidateConfigurationCommand}"> <MenuItem.Icon> <materialDesign:PackIcon Kind="CheckCircle" /> </MenuItem.Icon> </MenuItem> <MenuItem Header="调度分析(_S)" Command="{Binding AnalyzeSchedulingCommand}"> <MenuItem.Icon> <materialDesign:PackIcon Kind="TimelineClock" /> </MenuItem.Icon> </MenuItem> <MenuItem Header="堆栈分析(_A)" Command="{Binding AnalyzeStackCommand}"> <MenuItem.Icon> <materialDesign:PackIcon Kind="ChartBar" /> </MenuItem.Icon> </MenuItem> <Separator Style="{StaticResource MaterialDesignMenuItem}" /> <MenuItem Header="生成代码(_G)" Command="{Binding GenerateCodeCommand}"> <MenuItem.Icon> <materialDesign:PackIcon Kind="CodeJson" /> </MenuItem.Icon> </MenuItem> <MenuItem Header="导出OSCD(_O)" Command="{Binding ExportOSCDCommand}"> <MenuItem.Icon> <materialDesign:PackIcon Kind="Export" /> </MenuItem.Icon> </MenuItem> <MenuItem Header="导入ARXML(_I)" Command="{Binding ImportARXMLCommand}"> <MenuItem.Icon> <materialDesign:PackIcon Kind="Import" /> </MenuItem.Icon> </MenuItem> <Separator Style="{StaticResource MaterialDesignMenuItem}" /> <MenuItem Header="选项" Command="{Binding OptionsCommand}"> <MenuItem.Icon> <materialDesign:PackIcon Kind="Cog" /> </MenuItem.Icon> </MenuItem> </MenuItem> <MenuItem Header="帮助(_H)" Style="{StaticResource MaterialDesignMenuItem}"> <MenuItem Header="用户手册" Command="{Binding HelpCommand}"> <MenuItem.Icon> <materialDesign:PackIcon Kind="BookOpen" /> </MenuItem.Icon> </MenuItem> <MenuItem Header="教程" Command="{Binding TutorialCommand}"> <MenuItem.Icon> <materialDesign:PackIcon Kind="School" /> </MenuItem.Icon> </MenuItem> <Separator Style="{StaticResource MaterialDesignMenuItem}" /> <MenuItem Header="检查更新" Command="{Binding CheckUpdateCommand}"> <MenuItem.Icon> <materialDesign:PackIcon Kind="Update" /> </MenuItem.Icon> </MenuItem> <Separator Style="{StaticResource MaterialDesignMenuItem}" /> <MenuItem Header="关于" Command="{Binding AboutCommand}"> <MenuItem.Icon> <materialDesign:PackIcon Kind="Information" /> </MenuItem.Icon> </MenuItem> </MenuItem> </Menu> <!-- 工具栏 --> <ToolBarTray DockPanel.Dock="Top" Background="{DynamicResource MaterialDesignPaper}"> <ToolBar Band="1" BandIndex="1" Style="{StaticResource MaterialDesignToolBar}"> <!-- 项目操作 --> <Button Command="{Binding NewProjectCommand}" ToolTip="新建项目 (Ctrl+N)" Style="{StaticResource MaterialDesignIconButton}"> <materialDesign:PackIcon Kind="FilePlus" /> </Button> <Button Command="{Binding OpenProjectCommand}" ToolTip="打开项目 (Ctrl+O)" Style="{StaticResource MaterialDesignIconButton}"> <materialDesign:PackIcon Kind="FolderOpen" /> </Button> <Button Command="{Binding SaveProjectCommand}" ToolTip="保存项目 (Ctrl+S)" Style="{StaticResource MaterialDesignIconButton}" IsEnabled="{Binding CurrentProject, Converter={StaticResource NullToBooleanConverter}}"> <materialDesign:PackIcon Kind="ContentSave" /> </Button> <Separator Style="{StaticResource MaterialDesignToolBarSeparator}" /> <!-- 编辑操作 --> <Button Command="{Binding UndoCommand}" ToolTip="撤销 (Ctrl+Z)" Style="{StaticResource MaterialDesignIconButton}"> <materialDesign:PackIcon Kind="Undo" /> </Button> <Button Command="{Binding RedoCommand}" ToolTip="重做 (Ctrl+Y)" Style="{StaticResource MaterialDesignIconButton}"> <materialDesign:PackIcon Kind="Redo" /> </Button> <Separator Style="{StaticResource MaterialDesignToolBarSeparator}" /> <!-- 工具操作 --> <Button Command="{Binding ValidateConfigurationCommand}" ToolTip="验证配置" Style="{StaticResource MaterialDesignIconButton}" IsEnabled="{Binding CurrentProject, Converter={StaticResource NullToBooleanConverter}}"> <materialDesign:PackIcon Kind="CheckCircle" /> </Button> <Button Command="{Binding AnalyzeSchedulingCommand}" ToolTip="调度分析" Style="{StaticResource MaterialDesignIconButton}" IsEnabled="{Binding CurrentProject, Converter={StaticResource NullToBooleanConverter}}"> <materialDesign:PackIcon Kind="TimelineClock" /> </Button> <Button Command="{Binding GenerateCodeCommand}" ToolTip="生成代码" Style="{StaticResource MaterialDesignIconButton}" IsEnabled="{Binding CurrentProject, Converter={StaticResource NullToBooleanConverter}}"> <materialDesign:PackIcon Kind="CodeJson" /> </Button> </ToolBar> <ToolBar Band="2" BandIndex="1" Style="{StaticResource MaterialDesignToolBar}"> <!-- 视图切换 --> <Button Command="{Binding ShowTaskEditorCommand}" ToolTip="任务编辑器" Style="{StaticResource MaterialDesignIconButton}"> <materialDesign:PackIcon Kind="FormatListBulleted" /> </Button> <Button Command="{Binding ShowISREditorCommand}" ToolTip="中断编辑器" Style="{StaticResource MaterialDesignIconButton}"> <materialDesign:PackIcon Kind="AlertCircle" /> </Button> <Button Command="{Binding ShowScheduleEditorCommand}" ToolTip="调度表编辑器" Style="{StaticResource MaterialDesignIconButton}"> <materialDesign:PackIcon Kind="CalendarClock" /> </Button> <Separator Style="{StaticResource MaterialDesignToolBarSeparator}" /> <Button Command="{Binding ShowAnalysisViewCommand}" ToolTip="分析视图" Style="{StaticResource MaterialDesignIconButton}"> <materialDesign:PackIcon Kind="ChartLine" /> </Button> <Button Command="{Binding ShowCodePreviewCommand}" ToolTip="代码预览" Style="{StaticResource MaterialDesignIconButton}"> <materialDesign:PackIcon Kind="CodeBraces" /> </Button> </ToolBar> </ToolBarTray> <!-- 状态栏 --> <StatusBar DockPanel.Dock="Bottom" Background="{DynamicResource MaterialDesignPaper}"> <StatusBarItem> <StackPanel Orientation="Horizontal"> <materialDesign:PackIcon Kind="Folder" Width="16" Height="16" Margin="0 0 4 0" Foreground="{DynamicResource MaterialDesignBody}" /> <TextBlock Text="{Binding CurrentProject.Name, FallbackValue='无项目'}" VerticalAlignment="Center" /> </StackPanel> </StatusBarItem> <Separator /> <StatusBarItem> <StackPanel Orientation="Horizontal"> <materialDesign:PackIcon Kind="Pencil" Width="16" Height="16" Margin="0 0 4 0" Foreground="{DynamicResource MaterialDesignBody}" Visibility="{Binding CurrentProject.IsModified, Converter={StaticResource BooleanToVisibilityConverter}}" /> <TextBlock Text="{Binding CurrentProject.IsModified, Converter={StaticResource ModifiedStatusConverter}}" VerticalAlignment="Center" /> </StackPanel> </StatusBarItem> <Separator /> <StatusBarItem> <TextBlock Text="{Binding StatusMessage}" VerticalAlignment="Center" FontStyle="Italic" /> </StatusBarItem> <Separator /> <StatusBarItem HorizontalAlignment="Right"> <ProgressBar Width="100" Height="8" IsIndeterminate="{Binding IsBusy}" Visibility="{Binding IsBusy, Converter={StaticResource BooleanToVisibilityConverter}}" Style="{StaticResource MaterialDesignLinearProgressBar}" /> </StatusBarItem> </StatusBar> <!-- 主工作区 --> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="280" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="320" /> </Grid.ColumnDefinitions> <!-- 左侧:项目导航面板 --> <Border Grid.Column="0" Background="{DynamicResource MaterialDesignPaper}" BorderBrush="{DynamicResource MaterialDesignDivider}" BorderThickness="0 0 1 0"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <!-- 面板标题 --> <Border Grid.Row="0" Background="{DynamicResource MaterialDesignBackground}" Padding="12 8"> <TextBlock Text="项目导航" Style="{StaticResource MaterialDesignSubtitle2TextBlock}" /> </Border> <!-- 导航树 --> <TreeView Grid.Row="1" ItemsSource="{Binding ProjectTreeItems}" SelectedItemChanged="OnProjectTreeSelectionChanged" BorderThickness="0" ScrollViewer.VerticalScrollBarVisibility="Auto"> <TreeView.ItemTemplate> <HierarchicalDataTemplate ItemsSource="{Binding Children}"> <StackPanel Orientation="Horizontal"> <materialDesign:PackIcon Kind="{Binding Icon}" Width="16" Height="16" Margin="0 0 8 0" Foreground="{Binding IconColor, Converter={StaticResource ColorToBrushConverter}}" /> <TextBlock Text="{Binding Name}" VerticalAlignment="Center" /> <TextBlock Text="{Binding Count, StringFormat=' ({0})'}" Foreground="{DynamicResource MaterialDesignBodyLight}" VerticalAlignment="Center" Margin="4 0 0 0" /> </StackPanel> </HierarchicalDataTemplate> </TreeView.ItemTemplate> <TreeView.ItemContainerStyle> <Style TargetType="TreeViewItem" BasedOn="{StaticResource MaterialDesignTreeViewItem}"> <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" /> <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" /> </Style> </TreeView.ItemContainerStyle> </TreeView> </Grid> </Border> <!-- 左侧分隔条 --> <GridSplitter Grid.Column="1" Width="4" HorizontalAlignment="Stretch" Background="Transparent" Cursor="SizeWE" /> <!-- 中央:编辑器区域 --> <TabControl Grid.Column="2" ItemsSource="{Binding EditorTabs}" SelectedItem="{Binding SelectedEditorTab}" Background="{DynamicResource MaterialDesignPaper}" BorderThickness="0"> <!-- 标签头样式 --> <TabControl.ItemContainerStyle> <Style TargetType="TabItem" BasedOn="{StaticResource EditorTabItemStyle}"> <Setter Property="HeaderTemplate"> <Setter.Value> <DataTemplate> <StackPanel Orientation="Horizontal"> <materialDesign:PackIcon Kind="{Binding Icon}" Width="16" Height="16" Margin="0 0 6 0" /> <TextBlock Text="{Binding Title}" VerticalAlignment="Center" /> <Button Command="{Binding DataContext.CloseTabCommand, RelativeSource={RelativeSource AncestorType=TabControl}}" CommandParameter="{Binding}" Style="{StaticResource MaterialDesignIconButton}" Width="20" Height="20" Margin="8 0 0 0" Visibility="{Binding IsClosable, Converter={StaticResource BooleanToVisibilityConverter}}"> <materialDesign:PackIcon Kind="Close" Width="12" Height="12" /> </Button> </StackPanel> </DataTemplate> </Setter.Value> </Setter> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="TabItem"> <Grid Background="Transparent"> <Border Name="Border" Background="Transparent" BorderBrush="{DynamicResource MaterialDesignDivider}" BorderThickness="0 0 0 2" Margin="0 0 0 -1"> <ContentPresenter Name="Content" ContentSource="Header" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="12 8" /> </Border> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsSelected" Value="True"> <Setter TargetName="Border" Property="BorderBrush" Value="{DynamicResource MaterialDesignPrimaryBrush}" /> <Setter TargetName="Content" Property="TextElement.Foreground" Value="{DynamicResource MaterialDesignPrimaryBrush}" /> </Trigger> <Trigger Property="IsSelected" Value="False"> <Setter TargetName="Content" Property="TextElement.Foreground" Value="{DynamicResource MaterialDesignBody}" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> </TabControl.ItemContainerStyle> <!-- 标签内容 --> <TabControl.ContentTemplate> <DataTemplate> <ContentControl Content="{Binding Content}" /> </DataTemplate> </TabControl.ContentTemplate> </TabControl> <!-- 右侧分隔条 --> <GridSplitter Grid.Column="3" Width="4" HorizontalAlignment="Stretch" Background="Transparent" Cursor="SizeWE" /> <!-- 右侧:属性面板 --> <Border Grid.Column="4" Background="{DynamicResource MaterialDesignPaper}" BorderBrush="{DynamicResource MaterialDesignDivider}" BorderThickness="1 0 0 0"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <!-- 面板标题 --> <Border Grid.Row="0" Background="{DynamicResource MaterialDesignBackground}" Padding="12 8"> <TextBlock Text="{Binding PropertyPanelTitle, FallbackValue='属性'}" Style="{StaticResource MaterialDesignSubtitle2TextBlock}" /> </Border> <!-- 属性编辑器 --> <ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" Padding="12"> <ContentControl Content="{Binding PropertyEditor}" /> </ScrollViewer> <!-- 验证错误面板 --> <Border Grid.Row="2" Background="{DynamicResource MaterialDesignValidationErrorBrush}" Visibility="{Binding HasErrors, Converter={StaticResource BooleanToVisibilityConverter}}" Padding="12 8"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <StackPanel Grid.Row="0" Orientation="Horizontal"> <materialDesign:PackIcon Kind="AlertCircle" Width="16" Height="16" Margin="0 0 6 0" Foreground="{DynamicResource MaterialDesignValidationErrorColor}" /> <TextBlock Text="验证错误" Style="{StaticResource MaterialDesignSubtitle2TextBlock}" Foreground="{DynamicResource MaterialDesignValidationErrorColor}" /> </StackPanel> <ItemsControl Grid.Row="1" ItemsSource="{Binding Errors}" Margin="22 4 0 0"> <ItemsControl.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Message}" TextWrapping="Wrap" Margin="0 2" Foreground="{DynamicResource MaterialDesignValidationErrorColor}" FontSize="12" /> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> </Grid> </Border> </Grid> </Border> </Grid> </DockPanel> </Window>解析这段代码
12-03
<?xml version="1.0" encoding="UTF-8"?> <!-- This file stores bootstrap properties needed by Openfire. Property names must be in the format: "prop.name.is.blah=value" That will be stored as: <prop> <name> <is> <blah>value</blah> </is> </name> </prop> Most properties are stored in the Openfire database. A property viewer and editor is included in the admin console. --> <!-- root element, all properties must be under this element --> <jive> <!-- 核心:添加主目录及路径配置(解决启动失败问题) --> <home>/opt/openfire</home> <logdir>${openfire.home}/logs</logdir> <configdir>${openfire.home}/conf</configdir> <pluginsdir>${openfire.home}/plugins</pluginsdir> <resourcesdir>${openfire.home}/resources</resourcesdir> <adminConsole> <!-- 管理控制台端口(9090/http,9091/https) --> <port>9090</port> <securePort>9091</securePort> <interface>0.0.0.0</interface> <!-- 允许所有IP访问控制台 --> </adminConsole> <locale>zh_CN</locale> <!-- 语言设置为中文 --> <!-- 网络绑定配置(默认绑定所有网卡,无需修改) --> <!-- <network> <interface></interface> </network> --> <!-- 一次性访问令牌(默认禁用,无需修改) --> <!-- <oneTimeAccessToken>secretToken</oneTimeAccessToken> --> <connectionProvider> <className>org.jivesoftware.database.DefaultConnectionProvider</className> </connectionProvider> <!-- 数据库配置(保持你的原有配置,已验证正确) --> <database> <defaultProvider> <driver>com.mysql.cj.jdbc.Driver</driver> <serverURL>jdbc:mysql://localhost:3306/openfire?rewriteBatchedStatements=true&characterEncoding=UTF-8&characterSetResults=UTF-8&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true</serverURL> <username encrypted="true">2bd71c7131f570a1ac7b6003d21e7e47e5fda4602de86b7db1076a5ef1f8d5ce</username> <password encrypted="true">3f3ae7ebe13aa1f16502c278f12cd80b25953d3995cfc8158b0283e908edf0a0e28f8c79ba84d40fd0562f79feb9b378</password> <testSQL>select 1</testSQL> <testBeforeUse>false</testBeforeUse> <testAfterUse>false</testAfterUse> <testTimeout>PT0.5S</testTimeout> <timeBetweenEvictionRuns>PT30S</timeBetweenEvictionRuns> <minIdleTime>PT15M</minIdleTime> <maxWaitTime>PT0.5S</maxWaitTime> <minConnections>5</minConnections> <maxConnections>25</maxConnections> <connectionTimeout>1.0</connectionTimeout> </defaultProvider> </database> <setup>true</setup> <!-- 已完成初始化设置 --> <fqdn>szrengjing.com</fqdn> <!-- 服务器域名 --> <clustering> <enabled>true</enabled> </clustering> </jive>
11-17
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值